2011-06-19 41 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.