これを理解するのに少し時間がかかりました。だから、私は自分の質問に答えています。
いくつかの.csvがあり、それを高速sqldf
にロードしたい、パッケージを使用したい。あなたの通常のコードは、いくつかの厄介なフィールドにイライラしています。例:
1001, Amy,9:43:00, 99.2
1002,"Ben,Jr",9:43:00, 99.2
1003,"Ben,Sr",9:44:00, 99.3
このコードは*nixシステムでのみ機能します。
library(sqldf)
system("touch temp.csv")
system("echo '1001, Amy,9:43:00, 99.2\n1002,\"Ben,Jr\",9:43:00, 99.2\n1003,\"Ben,Sr\",9:44:00, 99.3' > temp.csv")
で読もうとすると
x <- read.csv.sql("temp.csv", header=FALSE)
Rは文句を言う
Error in try({ :
RS-DBI driver: (RS_sqlite_import: ./temp.csv line 2 expected 4 columns of data but found 5)
--FAQ.13ソリューションも機能しませんsqldf
:
x <- read.csv.sql("temp.csv", filter = "tr -d '\"' ", header=FALSE)
繰り返しますが、Rは文句を言います
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
line 1 did not have 5 elements
実際、フィルターは二重引用符のみを削除します。
では、どのように進めますか?