对带有页脚的数据使用sqldf

时间:2015-11-24 12:39:08

标签: r sqldf

我有一些看起来像这样的数据:

myDat <- data.frame(V1=rnorm(1000), 
                    V2=sample(LETTERS, 1000, replace=TRUE), 
                    V3=sample(1:1000, 1000))
write.table(myDat, file="myData.txt", sep="|", quote=FALSE, col.names=FALSE, row.names=FALSE)
write("00001000 RECORDS", file="myData.txt", append=TRUE) # This is the annoying footer

请注意底部始终存在的页脚。 我想在使用sqldf时阅读它。像这样:

f <- file("myData.txt")
hkFile <- sqldf("SELECT * FROM f", dbname=tempfile(), 
                file.format=list(header=FALSE, sep="|", eol="\n"))

由于附加到数据的页脚,我一直收到此错误:

Error in .local(conn, name, value, ...) : 
  RS_sqlite_import: myData.txt line 1001 expected 3 columns of data but found 1

是否有简单的方法绕过页脚?将数据复制到临时文件不是一种选择,因为我的一些数据集是~6GB

1 个答案:

答案 0 :(得分:1)

仅仅因为文件很大并不一定意味着你无法复制它。

这样做但会透明地复制文件。

head

在Windows上,它假定已经安装了Rtools,在这种情况下,通常它将能够找到filter = "C:/Rtools/bin/head -n - 1"但是如果没有提供路径,例如head。如果在Linux上,则{{1}}应该已经可用。