Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqlite 导出不带列名称的CSV_Sqlite_R_Csv - Fatal编程技术网

Sqlite 导出不带列名称的CSV

Sqlite 导出不带列名称的CSV,sqlite,r,csv,Sqlite,R,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(

我需要获取一个
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
我想知道为什么它首先要强制执行这一点——手册上说“这些包装器故意不灵活:它们旨在确保使用正确的约定来编写有效的文件。更改
append
col.names
sep
dec
qmethod
的尝试被忽略,并发出警告。“但我不知道规范中或其他地方要求列名,事实上,大多数工具(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>
请改用write.table(),如下所示:

write.table(mydf, "/tmp/mydf.csv", row.names=F, col.names=F, sep=",")

您可以直接将其导入SQLite。下面将内置数据框导入SQLite数据库
my.db
(如果它不存在,则创建
my.db

库(RSQLite)

谢谢。这种情况让我想知道
write.csv()
确实在处理CSV格式的所有特性,但也许有一天我会担心这一点。@KenWilliams当我看到这种API设计时,我也在想同样的问题。先诱捕用户,然后向他们发送警告,对于强制执行某个约定来说不是一种非常友好的方式。
library(RSQLite)
con <- dbConnect(SQLite(), dbname = "my.db")
dbWriteTable(con, "BOD", BOD, row.names = FALSE)
dbDisconnect(con)