讓我們說我有成千上萬的逗號分隔的文本文件,每個文本文件有1050列(無標題)。有沒有辦法將所有文本文件連接並導入到一個表中,SQLite中的一個數據庫(理想情況下,我會使用R和sqldf與SQlite進行通信)。連接文本文件並將它們導入SQLite數據庫
即,
每個文件被調用時,table1.txt,table2.txt,table3.txt;所有不同數量的行,但相同的列類型以及ID列(每個文件的第一列)中的不同唯一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的;我要尋找一個SQL命令,我可以在沒有交互式登錄到sqlite3的解釋在後臺運行,即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,使得字符串沒有得到一個錯誤。
p.s.我問了一個類似的Q從數據庫追加表,但這次我需要從數據庫中追加/導入文本文件而不是表。
您應該看看RSQLite包,用於從R表創建表到SQLite數據庫。 '''sqldf'''包是用於在R裏面使用SQL的。請看[RSQLite手冊]的第12頁(http://cran.r-project.org/web/packages/RSQLite/RSQLite.pdf )。 'dbWriteTable()'''可能是你需要的。嘗試創建一個表,然後嘗試循環休息。 – marbel
您可以使用SQLite附帶的'sqlite3'程序按照您所顯示的方式創建數據庫,然後從創建的數據庫的R上直接使用sqldf或更可能的RSQLite。 –