假设我有数千个逗号分隔的文本文件,每个文件有 1050 列(无标题)。有没有办法将所有文本文件连接并导入到一个表中,一个 SQLite 中的数据库(理想情况下,我会使用 R 和 sqldf 与 SQlite 进行通信)。
IE,
每个文件被调用,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。
现在我希望我在超级表中的新表,在数据库中,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 我问了一个类似的 Q 从数据库中追加表,但这次我需要追加/导入文本文件而不是数据库中的表。