2011-06-19 42 views
2

我試圖做兩個data.frames之間的R合併(),但內存不足,所以我想導出data.frame到SQLite數據庫(使用RSQLite庫)。從R設置或創建主鍵R

使用dbWriteTable()將data.frame寫入數據庫非常簡單。但是,我不認爲我可以在沒有主鍵的情況下在SQLite3中執行'JOIN'操作...

我的問題是:有沒有辦法爲data.frame設置/創建主鍵我在R中創建一個SQLite表?如果我不能這樣做,是否有人有巧妙的解決方法,他們一直在使用?

我意識到這是R的問題,與其說是統計的問題...

回答

0

一般情況下,SQL數據庫的共同價值觀加盟。因此,您可以在不創建主鍵的情況下執行JOIN操作。

對於數據和數據類型而言,SQLite比大多數更容易原諒。 (它並不真正支持SQL意義上的類型化數據。)它允許像這樣的東西。

CREATE TABLE v1 (n integer); 
INSERT INTO "v1" VALUES(1); 
INSERT INTO "v1" VALUES(2); 
INSERT INTO "v1" VALUES(3); 
INSERT INTO "v1" VALUES(4); 
INSERT INTO "v1" VALUES('Oh, bugger.'); 

CREATE TABLE v2 (n integer); 
INSERT INTO "v2" VALUES(1); 
INSERT INTO "v2" VALUES(3); 
INSERT INTO "v2" VALUES(5); 
INSERT INTO "v2" VALUES('Oh, bugger.'); 

select v1.n from v1 
inner join v2 on (v2.n = v1.n); 
1 
3 
Oh, bugger.