3

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.sqlheader=T作为参数调用,并且充其量我可以将行名作为最终数据框的第一列,其中当然需要进一步修改以将第一列作为行名并删除第一列,或者拥有一个简单的数据框,其中行名只是数字并且所需的行名完全丢失。

在我对函数的调用或文件格式中是否缺少一些东西,以便在read.csv.sql不进一步处理数据框的情况下,在第 1 列中读取的大型数据集作为行名更快地读取?

4

0 回答 0