Inleiding Programmeren + R

Dataframe

» Start

Dataframe


Een dataframe lijkt op een matrix. Het is ook een verzameling gegevens in tabel vorm. Maar in tegenstelling tot een matrix kunnen de gegevens van een verschillend type zijn. Je kunt in een dataframe numerieke gegevens samen weergeven met teksten (karakters). In die zin lijkt een dataframe nog het meeste op een spreadsheet. Die tekst is dan bijvoorbeeld te vinden in de eerste rij, op de kop van de kolommen, in de vorm van de namen van de verschillende variabelen waarvan de getallen in de kolommen staan. Maar het is ook mogelijk om teksten te gebruiken als waarden voor de variabelen, bijvoorbeeld als het nominale [kleur, factor, merk] of ordinale [slecht, goed, uitstekend] variabelen betreft.


Een dataframe kan binnen R gemaakt worden door vectoren aan elkaar te plakken tot een tabel, met behulp van de functie data.frame:


> help(data.frame)

> x <- c("lengte", "hoogte", "breedte")

> y <- c(4, 5, 6)

> z <- c(7, 8, 9)

> d <- data.frame(x, y, z)

> d

x             y z

1  lengte    4 7

2  hoogte  5 8

3  breedte 6 9

LET OP dat de vectoren x, y, en z dus kolomsgewijs aan elkaar worden geplakt tot een dataframe. De elementen in de kolommen van een dataframe moeten van het zelfde type zijn [of tekst, of getallen]. Dus in de eerste kolom staan in dit voorbeeld alleen maar woorden, en in de overige kolommen alleen maar getallen. Je kunt in een en dezelfde kolom niet getallen en tekst mengen, om dezelfde reden waarom dat in een vector ook mis gaat [de getallen worden dan nl automatisch in tekst omgezet]!


In de praktijk zul je binnen R niet vaak op de bovenstaande manier een dataframe maken  om je gegevens in tabelvorm op te slaan. Je zult dat veel eerder doen met een programma. Dan kan bijv de data-editor van R zelf zijn, edit(). 

Een spreadsheet programma als Excel is een meer voor de liggende optie. We moeten dus leren hoe we gegevens inlezen uit een file, om die vervolgens binnen R in de vorm te gieten van een dataframe.


File inlezen en bewaren in een dataframe:


Verzamel je gegevens en sla ze op in een Excel spreadsheet. Gebruik de eerste regel van dat spreadsheet om de namen van de variabelen in op te slaan. Let op dat je hele woorden gebruikt als naam. Alle waarnemingen staan op de volgende regels van dat spreadsheet:


gegevens.gif


Save je spreadsheet in text format (bijv 'filenaam.txt'). Het is het handigst als je die file opslaat in de working directory van R. Met het commando dir kun je controleren welke files in je working directory aanwezig zijn:

> dir()

[1] "R Console.txt"   "cohort"   "gegevens.txt"  "gegevens.xls"  "gm.r"         

Type nu de volgende opdracht op de commandoregel van R:

dataset<-read.table("gegevens.txt", header=TRUE)

Je kunt ook het volledige pad naar de file gebruiken:

dataset<-read.table("C:\\directory\\subdirectory\\gegevens.txt", header=T)

Let op de dubbele backslash ( \\ ) die hier gebruikt wordt om de namen van de directories te scheiden. Een enkele backslash wordt in R gebruikt als escape karakter, bijvoorbeeld om  het commando voor nieuwe regel, "\n", of tab, "\t", aan te duiden.

Let ook op het argument TRUE (of eenvoudigweg T) wat er op duidt dat de eerste regel van de in te lezen datamatrix de namen van de variabelen bevat.


De data zullen door de functie read.table worden ingelezen als dataframe met de naam dataset. Je kunt zelf controleren of de variabele dataset bestaat door het commando ls in te gebruiken:

> ls()

Je ziet een lijst van objecten die op dit moment in het geheugen van R aanwezig zijn. 


De functie dim vertelt je uit hoeveel rijen en kolommen het dataframe met de naam dataset bestaat:

> dim(dataset)

[1] 66 6

Met het commando names kun je de namen van de variabelen in het dataframe te weten komen:

> names(dataset)

[1] "lichaam"  "arm"      "pols"     "geslacht" "hand"     "ogen"    

Vervolgens zorg je er met het commando attach voor dat die variabelen ook onder die namen te gebruiken zijn in verdere analyses en bewerkingen:

> attach(dataset)

Je kunt een samenvatting van de inhoud van dataset maken door het commando summary te gebruiken:

> summary(dataset)

Uit een dataframe zijn op dezelfde manier elementen te selecteren als bij een matrix.

    

    > dataset[,1] # selecteer eerste kolom

    

    > dataset[c(1,3,5), c(2,3)] # selecteer kolom 2 en 3 uit rij 1, 3, en 5