对带页脚的数据使用 sqldf
Using sqldf on data with footer
我有一些数据看起来像这样:
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
仅仅因为文件很大并不一定意味着您不能复制它。
这会完成,但它会透明地复制文件。
my <- read.csv.sql("myData.txt", sql = "select * from file", sep = "|",
header = FALSE, filter = "head -n -1")
在 Windows 上,它假定安装了 Rtools,在这种情况下,通常它能够找到 head
,但如果没有给出路径,例如filter = "C:/Rtools/bin/head -n - 1"
。如果在 Linux 上,那么 head
应该已经可用。
我有一些数据看起来像这样:
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
仅仅因为文件很大并不一定意味着您不能复制它。
这会完成,但它会透明地复制文件。
my <- read.csv.sql("myData.txt", sql = "select * from file", sep = "|",
header = FALSE, filter = "head -n -1")
在 Windows 上,它假定安装了 Rtools,在这种情况下,通常它能够找到 head
,但如果没有给出路径,例如filter = "C:/Rtools/bin/head -n - 1"
。如果在 Linux 上,那么 head
应该已经可用。