それぞれ 1050 列 (ヘッダーなし) のカンマ区切りのテキスト ファイルが何千もあるとします。すべてのテキスト ファイルを 1 つのテーブル、SQLite の 1 つのデータベースに連結してインポートする方法はありますか (理想的には、R と sqldf を使用して SQlite と通信します)。
すなわち、
各ファイルは、table1.txt、table2.txt、table3.txt と呼ばれます。行数はすべて異なりますが、列の種類は同じで、IDs 列 (各ファイルの最初の列) の一意の ID が異なります。
table1.txt
id1,20.3,1.2,3.4
id10,2.1,5.2,9.3
id21,20.5,1.2,8.4
table2.txt
id2,20.3,1.2,3.4
id92,2.1,5.2,9.3
table3.txt
id3,1.3,2.2,5.4
id30,9.1,4.4,9.3
実際の例はほとんど同じですが、列と行が増えています。ご覧のとおり、各ファイルの最初の列は一意の ID に対応しています。
今、私はスーパーテーブル、DB、super.db の新しいテーブルを (一意にインデックス化されている) にしたいと考えています。
super.db - name of the DB
mysupertable - name of the table in the DB
myids,v1,v2,v3
id1,20.3,1.2,3.4
id10,2.1,5.2,9.3
id21,20.5,1.2,8.4
id2,20.3,1.2,3.4
id92,2.1,5.2,9.3
id3,1.3,2.2,5.4
id30,9.1,4.4,9.3
参考までに、私は SQLite3 を使用しています。sqlite3 インタープリターに対話的にログインせずにバックグラウンドで実行できる SQL コマンド、つまり IMPORT bla INTO を探しています...
私はUNIXで試すことができます:
cat *.txt > allmyfiles.txt
そして.sqlファイル、
CREATE TABLE test (myids varchar(255), v1 float, v2 float, v3 float);
.separator ,
.import output.csv test
しかし、私は R を使用しているため、このコマンドは機能しませんsqldf library
。dbGetQuery(db, sql)
また、エラーを発生させずに R でそのような文字列を作成する方法がわかりません。
ps DB からテーブルを追加するために同様の Q を尋ねましたが、今回は DB からテーブルではなくテキスト ファイルを追加/インポートする必要があります。