Data importeren

R is flexibel in het importeren van bestanden. De belangrijkste type bestanden zijn: csv, excel en SPSS. Voor meer informatie over hoe je data moet importeren zie de officiële handleiding van R.

De generieke functie in R voor het importeren van data is scan(). Elke functie die hieronder besproken wordt maakt (achter de schermen) gebruik van de scan() functie. De meest bekende core functie van R voor het importeren van data is de read.table() functie. Op basis hiervan zijn weer packages geschreven (bv: foreign en Hmisc) die read.table verandert in specifieke import functies voor CVS, Excel, SPSS, STATA, etc. De belangrijkste worden besproken.

read.table

De read.table() functie importeert data in een data.frame. Een aantal instellingen moeten en kunnen gedefineerd worden om te specificeren hoe R de data moet inladen. Deze instellingen noem je Arguments.

Als de eerste rij in je databestand bestaat uit de namen van de variabelen gebruik het argument: header=TRUE. alternatief kun je het argument col.names= gebruiken om zo kolommen een naam te geven.

R converteert characters automatisch in factors. Dit is wenselijk omdat het de efficiëntie van het importeren verbeterd. Zo hoef je niet zelf de variabelen te herclassificeren. Wil je echter voorkomen dat R characters als factors beschouwt (categoriale variabele) dan kun je gebruik maken van het argument: stringsAsFactors = FALSE.

read.table beschouwt automatisch de tekst: NA en NaN als een special character: een missing value. Gebruik ?read.table voor een lijst van alle arguments.

> mydata <- read.table("mydata.csv", header=TRUE,
+ sep=",", row.names="id")

In bovenstaand voorbeeld is het eerste argument dat in de functie read.table() voorkomt het databestand. Het tweede argument is de header. Het derde argument sep= vertelt R hoe variabelen van elkaar gescheiden worden. In dit geval is dat middels een komma.

Als je de eerste regel in R typt krijg je daarna een + in plaats van een >. Dit is de manier dat R aangeeft dat hij nog arguments verwacht voordat de functie volledig is. Gebruik Esc om de functie te annuleren.

read.csv()

Gebruik read.csv om .csv bestanden in te laden. De belangrijkste arguments van read.csv zijn: header= en sep=. Om een bestand in te laden moet deze in de working directory staan. Gebruik zonodig getwd() en setwd() om de working directory te vinden en te veranderen.

# Lees het bestand mydata.csv in een nieuw object genaamd "mydata"
mydata <- read.csv("mydata.csv", header=TRUE, sep=",") 
 
# Het is ook mogelijk om een bestand direct van het internet in te inlezen
mydata <- read.csv("http://www.ats.ucla.edu/stat/data/test.csv", header = TRUE, sep=",")

read.xlsx()

Excel bestanden zijn te importeren met de functie read.xls() uit de package “xlsx”. Het is afgeraden om direct excel bestanden in te lezen in R. Het is beter om een excel bestand op te slaan als een csv bestand en dat in te laden. Mocht je toch direct een excel bestand in willen laden kan dat:

 # Laad de package xlsx in de library
 library(xlsx)
 
 # Gebruik het argument sheetName om te defineren welk tablad R moet inlezen.
 mydata <- read.xlsx("myexcel.xlsx", sheetName = "blad1") 

read.spss()

SPSS bestanden zijn in te laden met de functie read.spss() uit de package “foreign”. Zie R-bloggers voor een stap voor stap instructie. Gebruik bijvoorbeeld StackOverflow als Troubleshooter.

# laad de package in de library
library(foreign)

# Het is ook mogelijk om direct naar een bestand verwijzen op de computer ipv de working directory
# met use.value.labels converteert R de labesls in SPSS naar factors.
mydata <- read.spss("c:/mydata.sav", use.value.labels=TRUE)

Data exporteren

Data kun je ook exporteren naar verschillende bestandformaten. zie Quick-R en Instant-R voor een goede uitleg. zie de Officiële R Manual voor een overzicht van de write.table functie. Een voorbeeld:

# opslaan van het object 'mydata'
write.csv(mydata, "filename.csv", sep=",")      # opslaan in working directory
write.csv(mydata, "C:/folder/filename.csv")     # opslaan op specifieke locatie

Resultaten exporteren

De resultaten van statistische testen zijn te exporteren naar een tekstbestand. Lees meer op R CookBook.

Grafieken exporteren

Om een plot op te slaan zijn er 3 stappen nodig:

  • Kies een extensie: png(), bmp(), pdf()
  • Plot de grafiek
  • Sluit af met dev.off()
# Voorbeeld:
fit <- lm(some ~ model)
png(filename="your/file/location/name.png")
plot(fit)
dev.off()

Lees meer over verschillende manieren van plots exporteren op R-bloggers.


Exploratie

Na het importeren van een databestand in is de eerste stap om een blik te werpen op de data en vauit daar verder te werken. Het doel is een overzicht te krijgen van de type data, de hoeveelheid data en een overzicht van de data te bemachtigen.

Het Cursuspakket

Tijdens onderstaande uitleg wordt gebruikt gemaakt van een het databestand “medicijn.csv”. Download nu het cursuspakket en plaats de bestanden in de working directory.

## Data importeren ##
mydata <- read.csv("medicijn.csv", header=TRUE, sep=";", dec=",", na.strings = "#LEEG!")

## Data exploratie ##
# Wat zijn de eerste 6 rijen van mydata
head(mydata)
##   age   na    k sex bp cholesterol drug
## 1  23 0.79 0.03   1  1           1    5
## 2  47 0.74 0.06   2  2           1    3
## 3  47 0.70 0.07   2  2           1    3
## 4  28 0.56 0.07   1  3           1    4
## 5  61 0.56   NA   1  2           1    5
## 6  22 0.68   NA   1  3           1    4
# Wat zijn de namen van de variabelen (kolommen) van mydata
names(mydata)
## [1] "age"         "na"          "k"           "sex"         "bp"         
## [6] "cholesterol" "drug"
# Wat is het data type van het object mydata
class(mydata)
## [1] "data.frame"

Een handige functie in deze fase is de s/l-apply() functie. Lees meer op R-Bloggers.

# Wat zijn de classes van alle variabelen
# Gebruik hiervoor sapply() of lapply()
sapply(mydata, class)
##         age          na           k         sex          bp cholesterol 
##   "numeric"   "numeric"   "numeric"   "numeric"   "numeric"   "numeric" 
##        drug 
##   "numeric"
## Statistische samenvatting
summary(mydata)
##       age               na               k                sex        
##  Min.   : 15.00   Min.   :0.0100   Min.   :0.00000   Min.   : 1.000  
##  1st Qu.: 31.00   1st Qu.:0.5400   1st Qu.:0.03000   1st Qu.: 1.000  
##  Median : 45.00   Median :0.6600   Median :0.05000   Median : 2.000  
##  Mean   : 44.76   Mean   :0.6044   Mean   :0.04553   Mean   : 1.579  
##  3rd Qu.: 58.00   3rd Qu.:0.7700   3rd Qu.:0.06000   3rd Qu.: 2.000  
##  Max.   :174.00   Max.   :0.9000   Max.   :0.08000   Max.   :11.000  
##  NA's   :2        NA's   :5        NA's   :3         NA's   :3       
##        bp         cholesterol        drug      
##  Min.   :1.000   Min.   :1.00   Min.   :1.000  
##  1st Qu.:1.000   1st Qu.:1.00   1st Qu.:3.000  
##  Median :2.000   Median :1.00   Median :4.000  
##  Mean   :1.903   Mean   :1.48   Mean   :3.863  
##  3rd Qu.:3.000   3rd Qu.:2.00   3rd Qu.:5.000  
##  Max.   :3.000   Max.   :2.00   Max.   :5.000  
##  NA's   :4       NA's   :4      NA's   :3
## Data visualistatie ##
# Gebruik View() om een nieuw venster te openen en de data te BEKIJKEN
View(mydata)

# Gebruik fix() om een nieuwe venster te openen en de data te BEWERKEN
fix(mydata)
# plot alle data
plot(mydata)


Creative Commons-Licentie Dit werk valt onder een Creative Commons Naamsvermelding - Gelijk Delen 3.0 Internationaal-licentie .