ladyLein startpagina

0. R install & library
1. R start
2. Vectoren
(een rij waarden)

3. Matrixen
(tabellen)

4. Statistieken
(min, max, gemiddelde, standaard defiatie)

5. Factoren
(-categorieën/typen)

6. Data frames
(wat is een dataframe,
inlezen txt en csv bestanden)

7. Correlatie in de grafiek
8. Plot
9. GGplot2
(lijn, staaf, taart)

10. Functies
if else, for, while, repeat
quantile, aggregate

string
datum
11. SQL / dplyr
(gegevens ophalen uit tabellen)

12. WAR meetkastjes en KNMI
(data ophalen en in grafiek zetten)

13. Qgis
gegevens op de kaart zetten



Functies


If else

Wordt er aan een voorwaarde voldaan, doe dan iets
zonee, doe wat anders
x=10
if (x<20){
print("hoi klein getal")
} else {
print("hallo groot getal")
}
antwoord: hoi klein getal

For lus

Doe een opgegeven aantal keer iets
for (i in 1:3) {
print("hoi")
}
antwoord:
[1] "hoi"
[1] "hoi"
[1] "hoi"

While lus

Doe iets zolang er aan de voorwaarde wordt voldaan
Eerst kijken of aan de voorwaarde wordt voldaan, dan zoja uitvoeren
x<-3
while (x>0) {
y<-x
toString(y)
s<-c(y,"=groter dan 0")
print(s)
x<-x-1
}
antwoord
[1] "3" "=groter dan 0"
[1] "2" "=groter dan 0"
[1] "1" "=groter dan 0"

Repeat

Herhaal iets
Eerst uitvoeren, dan kijken of het nog een keer moet
x <- 3
repeat {
y<-x
toString(y)
s<-c(y,"=groter dan 0")
print(s)
x = x-1
if (x == 0){
break
}
}
antwoord
[1] "3" "=groter dan 0"
[1] "2" "=groter dan 0"
[1] "1" "=groter dan 0"

Replicate

Doe hetzelfde een aantal keer
Replicate heeft 2 argumenten:
Het eerste moet een positief geheel getal x zijn.
Het tweede argument is de expressie die x keer zal worden uitgevoerd.

We willen bijvoorbeeld een histogram maken van de uitkomst van 1000 experimenten
in elk waarvan we de gemiddelde waarde berekenen van 100 worpen met een dobbelsteen:
replicate doet iets meerdere keren.

hist(replicate(1000, mean(sample(1:6, 100, replace=TRUE))))
De functie sample trekt 100 keer random een getal uit de reeks 1, 2, 3, 4 , 5, 6, met teruglegging.
We berekenen voor elke 100 trekkingen het gemiddelde,
en dat berekenen van het gemiddelde over 100 trekkingen herhalen we 1000 keer.

Herhalen zonder lus

x <- 1:10
y <- x * 10
antwoord [1] 10 20 30 40 50 60 70 80 90 100

Quantile: opdelen in gelijke stukken

x<-c(1,2,3,4,5)
quantile(x)
antwoord:

quantile(x,0.01)
antwoord 1% 1.04
quantile(x,0.99)
antwoord 99% 4.96

Categorieën optellen, gemiddelde, maximum, minimum

aggregate()
types<-c("tv","computer","dvd","tv","dvd","tv","computer")
prijs<-c(100,500,150,300,50,200,400)
winkel<-data.frame(types,prijs)
print(winkel)


Optelling

faktor<-factor(types)
aggregate(winkel$prijs, by=list(faktor), FUN=sum)
R is hoofdletter-gevoelig, dus FUN met hoofdletters schrijven


Gemiddelde

faktor<-factor(types)
aggregate(winkel$prijs, by=list(faktor), FUN=mean)


Maximum

faktor<-factor(types)
aggregate(winkel$prijs, by=list(faktor), FUN=max)


Minimum

faktor<-factor(types)
aggregate(winkel$prijs, by=list(faktor), FUN=min)



Functies op een kolom of rij

apply()



Rijen worden aangeduid met 1, kolommen met 2.

kolommen optellen
apply(getalletjes, 2, sum) antwoord one 15, two 40

rijen optellen
apply(getalletjes, 1, sum) antwoord 7 9 11 13 15

apply(getalletjes, 2, mean) gemiddeld antwoord one 3 two 8

apply(getalletjes, 2, min) minimum antwoord one 1 two 6

apply(getalletjes, 2, max) maximum antwoord one 5 two 10

Zijn er kolommen in de tabel die geen getallen hebben, bv namen,
dan heb ik dit nog niet aan de praat gekregen.
Dan Aggregate() gebruiken, die kan meer,
maar dan moet je een kolom tot categorie benoemen.


Terug naar top