read.csv中的row.names vs read.csv.sql(包sqldf)

时间:2014-02-07 19:40:16

标签: r csv sqldf

row.namesread.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>

0 个答案:

没有答案