导出不带col.names的CSV

  • 本文关键字:names CSV col sqlite 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

我不得不想知道为什么它一开始就强制执行这一点-手册上说"这些包装器是故意不灵活的:它们的设计是为了确保使用正确的约定来编写有效的文件。更改appendcol.namessepdecqmethod的尝试被忽略,并发出警告。",大多数工具(Excel等(都不专门处理它们。

如果你不能打败他们,就加入他们

如果你切换到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=",")

最新更新