Установить или создать первичный ключ в SQLite из R - PullRequest
2 голосов
/ 19 июня 2011

Я пытался сделать merge () в R между двумя data.frames, но у меня не хватает оперативной памяти, поэтому я хотел бы экспортировать data.frame в базу данных SQLite (используя библиотеку RSQLite).

Запись data.frame в базу данных достаточно проста с помощью dbWriteTable (). Но я не думаю, что смогу выполнить операцию «JOIN» в SQLite3 без первичного ключа ...

Мой вопрос: есть ли способ установить / создать первичный ключ для data.frame, когда я создаю таблицу SQLite в R? Если я не могу сделать это, у кого-нибудь есть умный обходной путь, который они использовали?

Я понимаю, что это вопрос R, а не вопрос статистики ...

Ответы [ 2 ]

2 голосов
/ 19 июня 2011

Этот тип вопроса обсуждается на R-sig-DB.В частности см .:

https://stat.ethz.ch/pipermail/r-sig-db/2010q1/000813.html

0 голосов
/ 20 июня 2011

Как правило, базы данных 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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...