我尝试在两个data.frames之间的R中进行merge()但是RAM用完了,所以我想将data.frame导出到SQLite数据库(使用RSQLite库)。 / p>
使用dbWriteTable()将data.frame写入数据库非常简单。但是,我不认为我可以在没有主键的情况下在SQLite3中执行'JOIN'操作......
我的问题是:当我在R中创建SQLite表时,有没有办法为data.frame设置/创建主键?如果我不能这样做,有没有人有一个巧妙的解决方案,他们一直在使用?
我意识到这是一个R问题,而不是一个统计问题......
答案 0 :(得分:2)
在R-sig-DB上讨论了这类问题。特别是,见:
答案 1 :(得分: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.