Albart Coster
John Bastiaansen
Zie bijvoorbeeld dit artikel in New York Times: http://goo.gl/Ldz14
Installeer R www.r-project.org
Installeer verder RStudio www.rstudio.com

Screenshot van RStudio
1 + 2
## [1] 3
3/2
## [1] 1.5
(1 + 2) * (3/5)
## [1] 1.8
5^2
## [1] 25
sqrt(5^2)
## [1] 5
R slaat gegevens op in objecten van verschillende types, in programmeerjargon classes:
## classe numeric
n <- 1
class(n)
## [1] "numeric"
nn <- c(1, 2, 4, 5)
class(nn)
## [1] "numeric"
## classe character
ch <- "a"
class(ch)
## [1] "character"
naam <- "albart"
class(naam)
## [1] "character"
hnaam <- c("albart", "coster")
class(hnaam)
## [1] "character"
## classe datum
d <- as.Date("2013-03-09")
class(d)
## [1] "Date"
dd <- as.Date(c("2013-03-08", "2013-03-09"))
class(dd)
## [1] "Date"
## tabellen van classe matrix
m <- matrix(1:4, ncol = 2)
m
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
class(m)
## [1] "matrix"
## tabellen van classe data.frame
dieren <- data.frame(DIER = c("DIER 1", "DIER 2", "DIER 3", "DIER 4"),
GEB_DATUM = as.Date(c("2010-01-01", "2011-01-01", "2012-01-01", "2013-01-01")),
GEWICHT = c(600, 605, 610, 40))
dieren
## DIER GEB_DATUM GEWICHT
## 1 DIER 1 2010-01-01 600
## 2 DIER 2 2011-01-01 605
## 3 DIER 3 2012-01-01 610
## 4 DIER 4 2013-01-01 40
class(dieren)
## [1] "data.frame"
R beschikt over functies om dingen te doen met gegevens. De functie class geeft bijvoorbeeld de classe van een object weer, functie c verbindt (concateneerd) objecten achter elkaar, functieS matrix en data.frame zijn er om objecten van classe matrix en data.frame te maken. Functies zijn dus eigenlijk de gereedschappen in R, en zijn ook gewoon objecten. Functies worden uitgevoerd door de naam van de functie te typen met daarachter (), eventueel met opdrachten, argumenten er binnen in.
Belangrijke functies:
c om gegevens achter elkaar in een reeks te zetten
matrix om gegevens in een matrix te zetten
data.frame om data.frames te maken
sqrt berekent de wortel
mean berekent het gemiddelde van een reeks getallen
sd berekent de standardafwijking, var berekent de variantie van een reeks getallen
read.table om gegevens uit een tabel in te lezen
write.table om gegevens in een tabel weg te schrijven
require om pakketten te laden
help.start() , help(object) , help.search('topic')Download bestand rworkshop.dairyconsult.nl/bestanden/melkproductie.dat en sla het op een logische plaats op, bijvoorbeeld Mijn Documenten\Rworkshop
We moeten R eerst vertellen dat hij in Mijn Documenten\Rworkshop moet kijken
In RStudio Control+Shift+K
In RStudio:

Werkmap aanpassen in RStudio
setwd("E:/Mijn Documenten/Rworkshop")
Eerst even controleren of het bestand melkproductie.dat hier staat
getwd()
## [1] "C:/Users/John/Dropbox/Rworkshop_maart_2013/begin"
file.exists("melkproductie.dat")
## [1] TRUE
Nu lezen we het in een object en bekijken de eerste 6 regels
productie <- read.table("melkproductie.dat", header = TRUE)
head(productie, n = 6)
## DATUM ID NLACT DIL KG_MELK VET_PERC EIWIT_PERC SCC
## 1 2012-04-28 3 11 102 50.2 3.81 3.13 75
## 2 2012-04-28 83 9 181 30.8 3.89 3.39 127
## 3 2012-04-28 95 8 317 31.8 3.59 3.11 97
## 4 2012-04-28 137 7 161 41.6 3.58 3.29 17
## 5 2012-04-28 148 8 191 31.2 3.88 3.21 3168
## 6 2012-04-28 168 7 207 34.2 3.54 3.20 55
productie is een tabel, in R is dit een data.frame. Tabel heeft verschillende kolommen en we bereiken deze kolommen als volgt: productie$KG_MELK.
Het aantal aanwezige dieren komt overeen met het aantal rijen in tabel productie:
nrow(productie)
## [1] 687
De gemiddelde productie kunnen we berekenen met de functie mean, als we weten dat kolom KG_MELK de producties bevat:
mean(productie$KG_MELK)
## [1] 39.8
Een grafiek maakt veel duidelijk, in R zijn veel mogelijkheden om grafieken te maken. Wij gebruiken het pakket ggplot2 hiervoor. We moeten het pakket eerst installeren, met functie install.packages, en vervolgens laden, met functie require:
install.packages("ggplot2")
require(ggplot2)
Om de grafiek te maken gebruiken we functie qplot:
qplot(y = KG_MELK, x = DIL, data = productie)
plot of chunk begin8
In dit onderdeel van de workshop hebben we het volgende behandeld: