मेरे पास CSV फ़ाइल (24.1 MB) है जिसे मैं अपने R सत्र में पूरी तरह से नहीं पढ़ सकता। जब मैं एक स्प्रेडशीट प्रोग्राम में फ़ाइल खोलता हूं तो मैं 112,544 पंक्तियों को देख सकता हूं। जब मैंने इसे R में पढ़ा तो read.csvमुझे केवल 56,952 पंक्तियाँ और यह चेतावनी मिली:
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
मैं पूरी फाइल को R के साथ पढ़ सकता हूं readLines:
rl <- readLines(file("citations.CSV", encoding = "utf-8"))
length(rl)
[1] 112545
लेकिन मैं इसे एक तालिका के रूप में आर में वापस नहीं ला सकता (के माध्यम से 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
मैं अपने Rसत्र में संपूर्ण फ़ाइल प्राप्त करने के लिए इस ईओएफ संदेश (जो एक चेतावनी से अधिक त्रुटि प्रतीत होता है) को कैसे हल या हल कर सकता हूं ?
मुझे CSV फ़ाइलों को पढ़ने के अन्य तरीकों के साथ समान समस्याएं हैं:
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")
यहाँ मेरा सेशन हैइन्फो ()
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इस स्थिति में काम करने के बारे में क्या सोचते हैं ? मुझे पसंद है क्योंकि यह बहुत तेजी से हैread.csv। लेकिनfreadएकquoteतर्क लेने के लिए प्रतीत नहीं होता है ..