Dokumentationen for RMySQL er ret god - men den forudsætter, at du kender det grundlæggende i SQL. Disse er:
- oprettelse af en database
- oprettelse af en tabel
- få data ind i tabellen
- få data ud af tabellen
Trin 1 er let:I MySQL-konsollen skal du blot "opret database DBNAME". Eller fra kommandolinjen, brug mysqladmin , eller der er ofte MySQL admin GUI'er.
Trin 2 er lidt sværere, da du skal angive tabelfelterne og deres type. Dette vil afhænge af indholdet af din CSV-fil (eller anden afgrænset) fil. Et simpelt eksempel ville se sådan ud:
use DBNAME;
create table mydata(
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
height FLOAT(3,2)
);
Hvilket siger opret en tabel med 2 felter:id , som vil være den primære nøgle (skal derfor være unik) og vil automatisk øges efterhånden som nye poster tilføjes; og højde , som her er angivet som en float (en numerisk type), med 3 cifre i alt og 2 efter decimaltegnet (f.eks. 100,27). Det er vigtigt, at du forstår datatyper .
Trin 3 - der er forskellige måder at importere data til en tabel på. En af de nemmeste er at bruge mysqlimport nytte. I eksemplet ovenfor, forudsat at dine data er i en fil med samme navn som tabellen (mydata), den første kolonne et tabulatortegn og den anden højdevariablen (uden overskriftsrække), ville dette fungere:
mysqlimport -u DBUSERNAME -pDBPASSWORD DBNAME mydata
Trin 4 - kræver, at du ved, hvordan du kører MySQL-forespørgsler. Igen et simpelt eksempel:
select * from mydata where height > 50;
Betyder "hent alle rækker (id + højde) fra tabellen mydata, hvor højden er mere end 50".
Når du har mestret disse grundlæggende funktioner, kan du flytte til mere komplekse eksempler, såsom at oprette 2 eller flere tabeller og køre forespørgsler, der forbinder data fra hver.
Så - du kan slå til RMySQL-manualen. I RMySQL opsætter du databaseforbindelsen og bruger derefter SQL-forespørgselssyntaks til at returnere rækker fra tabellen som en dataramme. Så det er virkelig vigtigt, at du får SQL-delen - RMySQL-delen er nem.
Der er masser af MySQL- og SQL-tutorials på nettet, inklusive de "officielle" tutorial på MySQL-hjemmesiden. Bare Google søg "mysql tutorial".
Personligt anser jeg slet ikke 80 Mb for at være et stort datasæt; Jeg er overrasket over, at dette forårsager et RAM-problem, og jeg er sikker på, at native R-funktioner kan håndtere det ret nemt. Men det er godt at lære nye færdigheder såsom SQL, selvom du ikke har brug for dem til dette problem.