web-dev-qa-db-ja.com

col.namesなしでCSVをエクスポート

_data.frame_を取得し、CSVファイル(または他の何かですが、CSVは最も簡単な整形式のように見えた)にエクスポートして、SQLiteデータベースにインポートできるようにする必要があります。

ただし、write.csv()ではヘッダー行を記述する必要があり、SQLiteの_.import_コマンドではI do n'tヘッダー行が必要です。だから、それは少し不一致です。

ヘッダー行を省略しようとするとどうなりますか。

_> 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_、sepdecまたはqmethodは無視され、警告が表示されます。 "しかし、私は仕様や列名を必要とする他の場所で何も知りません-実際、ほとんどのツール(Excelなど)は特別にそれらを扱いません。

56
Ken Williams

あなたがそれらを打つことができないなら、それらに参加します

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>
108

SQLiteに直接インポートできます。以下は、組み込みデータフレームBODをSQLiteデータベースmy.dbにインポートします(まだ存在しない場合はmy.dbを作成します)。

library(RSQLite)
con <- dbConnect(SQLite(), dbname = "my.db")
dbWriteTable(con, "BOD", BOD, row.names = FALSE)
dbDisconnect(con)
10
G. Grothendieck

代わりにwrite.table()を使用してください:

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