row.names
中read.csv.sql
参数的描述只是简单地说“在'read.csv'中'”
但是当我尝试读取一个简单的csv文件时,第一列作为行名称,read.csv.sql
中的行为不符合我的预期。
d <- data.frame("a"=c(1:10), "b"=c(15:24), "c"=c(21:30), row.names=paste("r", c(1:10), sep=""))
write.csv(d,"foo.txt", quote=T)
head(read.csv("foo.txt", row.names=1), 3)
a b c
r1 1 15 21
r2 2 16 22
r3 3 17 23
read.csv
给出了我可能希望的东西。但是当我尝试read.csv.sql
时:
head(read.csv.sql("foo.txt", row.names=1), 3)
Error in try({ :
RS-DBI driver: (RS_sqlite_import: ./foo.txt line 2 expected 5 columns of data but found 4)
Error in sqliteExecStatement(con, statement, bind.data) :
RS-DBI driver: (error in statement: no such table: file)
我尝试过不同的小事情,例如是否在原始csv文件中包含引号,或仅使用read.csv.sql
作为参数调用header=T
,并且我最多可以获得行名称作为我的最终数据框的第一列,当然需要进一步修改以将第一列作为行名称并删除第一列,或者使用行名称只是数字的简单数据框和所需的行名完全丢失。
在调用函数或文件格式时,我是否缺少某些内容,以便在第1列中读取第1列中的大型数据集read.csv.sql
时更快,而无需进一步处理数据框?< / p>