Tôi có tệp CSV (24,1 MB) mà tôi không thể đọc đầy đủ vào phiên R của mình. Khi tôi mở tệp trong chương trình bảng tính, tôi có thể thấy 112.544 hàng. Khi tôi đọc nó vào R với read.csv
tôi chỉ nhận được 56.952 hàng và cảnh báo này:
cit <- read.csv("citations.CSV", row.names = NULL,
comment.char = "", header = TRUE,
stringsAsFactors = FALSE,
colClasses= "character", encoding= "utf-8")
Warning message:
In scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
EOF within quoted string
Tôi có thể đọc toàn bộ tập tin vào R với readLines
:
rl <- readLines(file("citations.CSV", encoding = "utf-8"))
length(rl)
[1] 112545
Nhưng tôi không thể lấy lại cái này thành R dưới dạng bảng (thông qua read.csv
):
write.table(rl, "rl.txt", quote = FALSE, row.names = FALSE)
rl_in <- read.csv("rl.txt", skip = 1, row.names = NULL)
Warning message:
In scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
EOF within quoted string
Làm cách nào tôi có thể giải quyết hoặc khắc phục thông báo EOF này (dường như có nhiều lỗi hơn là cảnh báo) để đưa toàn bộ tệp vào R
phiên của tôi ?
Tôi gặp vấn đề tương tự với các phương pháp đọc tệp CSV khác:
require(sqldf)
cit_sql <- read.csv.sql("citations.CSV", sql = "select * from file")
require(data.table)
cit_dt <- fread("citations.CSV")
require(ff)
cit_ff <- read.csv.ffdf(file="citations.CSV")
Đây là sessionInfo của tôi ()
R version 3.0.1 (2013-05-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] tools tcltk stats graphics grDevices utils datasets methods base
other attached packages:
[1] ff_2.2-11 bit_1.1-10 data.table_1.8.8 sqldf_0.4-6.4
[5] RSQLite.extfuns_0.0.1 RSQLite_0.11.4 chron_2.3-43 gsubfn_0.6-5
[9] proto_0.3-10 DBI_0.2-7
fread
làm việc trong tình huống này? Tôi thích điều đó bởi vì nó nhanh hơn nhiềuread.csv
. Nhưngfread
dường như không cóquote
tranh luận ..