导出没有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是为了确保使用正确的约定写一个有效的文件。试图改变appendcol.namessepdecqmethod被忽略,并带有警告。 但是我不知道规范或其他地方需要列名 – 实际上,大多数工具(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=",")