导出没有col.names的CSV
我需要一个data.frame
并将其导出到CSV文件(或其他东西,但CSV似乎是最简单的格式良好的格式),所以我可以将其导入到SQLite数据库。
但是,它看起来像write.csv()
要求我写一个标题行,而SQLite的.import
命令要求我没有标题行。 所以这是一个不匹配的。
以下是如果我试图省略标题行会发生什么情况:
> write.csv(mydf, "/tmp/mydf.csv", row.names=F, col.names=F) Warning message: In write.csv(mydf, "/tmp/mydf.csv", row.names = F, col.names = F) : attempt to set 'col.names' ignored
我不得不想知道为什么它首先执行 – 手册说: “这些包装是故意不灵活的:它们的devise是为了确保使用正确的约定写一个有效的文件。试图改变append
, col.names
, sep
, dec
或qmethod
被忽略,并带有警告。 但是我不知道规范或其他地方需要列名 – 实际上,大多数工具(Excel等)并没有特别对待它们。
如果你不能打败他们,join他们。
如果你切换到write.table()
( write.csv()
调用),你是黄金:
R> write.table(trees, file="/tmp/trees.csv", + row.names=FALSE, col.names=FALSE, sep=",") R> system("head /tmp/trees.csv") 8.3,70,10.3 8.6,65,10.3 8.8,63,10.2 10.5,72,16.4 10.7,81,18.8 10.8,83,19.7 11,66,15.6 11,75,18.2 11.1,80,22.6 11.2,75,19.9 R>
你可以直接导入到SQLite。 下面将内置的数据框BOD
导入到SQLite数据库my.db
(如果my.db
不存在)。
library(RSQLite) con <- dbConnect(SQLite(), dbname = "my.db") dbWriteTable(con, "BOD", BOD, row.names = FALSE) dbDisconnect(con)
使用write.table()来代替:
write.table(mydf, "/tmp/mydf.csv", row.names=F, col.names=F, sep=",")