Gegevens in tabellen

John Bastiaansen

Albart Coster

Tabellen

Hier leren we om gegevens in R samen te vatten:

X1 X2 2012-01-30 2012-02-28 2012-03-29 2012-04-28
1 laktatie 0-30 DIL 25.86 30.05 30.45 29.67
1 laktatie 31-61 DIL 35.00 31.67 36.03 34.87
1 laktatie 61-200 DIL 35.41 34.64 35.24 36.19
1 laktatie 200+ DIL 32.95 31.51 32.66 35.23
2 laktaties 0-30 DIL 41.93 38.61 42.94 44.22
2 laktaties 31-61 DIL 47.73 48.71 43.52 55.97
2 laktaties 61-200 DIL 43.48 42.35 42.88 46.20
2 laktaties 200+ DIL 31.41 31.81 34.05 37.51
3 + laktaties 0-30 DIL 44.97 45.29 44.45 45.06
3 + laktaties 31-61 DIL 53.66 49.69 51.83 54.90
3 + laktaties 61-200 DIL 43.81 43.34 44.95 47.48
3 + laktaties 200+ DIL 32.27 31.63 32.45 33.79

Gegevens

df <- read.table("melkproducties.dat", head = TRUE)
head(df)
##        DATUM ID NLACT DIL PROD_KG VET_PERC EIWIT_PERC
## 1 2011-01-28  3    10 235      NA     3.33       4.10
## 2 2011-02-28  3    10 266    36.6     3.26       4.24
## 3 2011-03-31  3    10 297    32.4     3.32       3.17
## 4 2011-04-27  3    10 324    24.6     3.38       2.45
## 5 2011-05-30  3    10 357    29.0     3.25       3.64
## 6 2011-06-27  3    10 385    25.6     3.50       4.07
summary(df)
##         DATUM            ID           NLACT            DIL         PROD_KG    
##  2012-03-29: 702   Min.   :   3   Min.   : 1.00   Min.   :  5   Min.   : 4.6  
##  2012-02-28: 689   1st Qu.: 766   1st Qu.: 1.00   1st Qu.: 84   1st Qu.:28.8  
##  2012-04-28: 687   Median :1034   Median : 2.00   Median :164   Median :34.8  
##  2011-04-27: 656   Mean   : 981   Mean   : 2.38   Mean   :178   Mean   :35.5  
##  2012-01-30: 655   3rd Qu.:1245   3rd Qu.: 3.00   3rd Qu.:254   3rd Qu.:41.8  
##  2011-03-31: 647   Max.   :1607   Max.   :11.00   Max.   :890   Max.   :78.8  
##  (Other)   :6238                                                NA's   :103   
##     VET_PERC      EIWIT_PERC  
##  Min.   :1.98   Min.   :1.05  
##  1st Qu.:2.97   1st Qu.:3.32  
##  Median :3.16   Median :3.68  
##  Mean   :3.20   Mean   :3.75  
##  3rd Qu.:3.40   3rd Qu.:4.09  
##  Max.   :7.10   Max.   :9.95  
##  NA's   :14     NA's   :14

Werking van tabellen in R

In R heet een tabel een data.frame:

class(df)
## [1] "data.frame"

En een data.frame heeft rijen en kolommen:

nrow(df)
## [1] 10274
ncol(df)
## [1] 7

De kolommen van een data.frame hebben namen:

colnames(df)
## [1] "DATUM"      "ID"         "NLACT"      "DIL"        "PROD_KG"    "VET_PERC"  
## [7] "EIWIT_PERC"

Bereiken van gegevens in een data.frame

We kunnen individuele gegevens in een data.frame bereiken door R te vertellen welke rij en welke kolom we willen benaderen. Er zijn meerdere mogelijkheden:

df[1, 5]
## [1] NA
df$PROD_KG[1]
## [1] NA
df[1, "PROD_KG"]
## [1] NA

We kunnen ook meerdere gegevens tegelijk benaderen:

df[1, ]
##        DATUM ID NLACT DIL PROD_KG VET_PERC EIWIT_PERC
## 1 2011-01-28  3    10 235      NA     3.33        4.1
df[1:4, ]
##        DATUM ID NLACT DIL PROD_KG VET_PERC EIWIT_PERC
## 1 2011-01-28  3    10 235      NA     3.33       4.10
## 2 2011-02-28  3    10 266    36.6     3.26       4.24
## 3 2011-03-31  3    10 297    32.4     3.32       3.17
## 4 2011-04-27  3    10 324    24.6     3.38       2.45
df[1:4, 5]
## [1]   NA 36.6 32.4 24.6
df$PROD_KG[1:5]
## [1]   NA 36.6 32.4 24.6 29.0

Toevoegen van gegevens in een data.frame

Stel dat we nu de hoeveelheid meetmelk willen berekenen voor elke koe op elke melkcontrole:

\(\text{FPCM} = (0.337 + 0.116\cdot \text{VET PERC} + 0.06\cdot \text{EIWIT PERC})\cdot \text{PROD KG}\)

FPCM <- (0.337 + 0.116 * df$VET_PERC + 0.06 * df$EIWIT_PERC) * df$PROD_KG

en dat we FPCM willen toevoegen aan ons data.frame:

df$FPCM <- FPCM

We kunnen het ook in een keer doen:

df$FPCM <- (0.337 + 0.116 * df$VET_PERC + 0.06 * df$EIWIT_PERC) * df$PROD_KG

Samenvatten van gegevens 1

Stel dat we nu de gemiddelde meetmelkproductie van 1e-kalfs koeien willen berekenen. Hiervoor gebruiken we functie mean, type ?mean in R in om de documentatie van deze functie te zien.

We moeten de productie van 1e-kalfs koeien hebben, dit zijn dieren waar df$NLACT gelijk is aan 1. Vervolgens moeten we de gemiddelde productie van deze dieren berekenen:

pr1 <- df$FPCM[df$NLACT == 1]
mean(pr1)
## [1] NA

Omdat de productie van sommige dieren niet bekend is, in R wordt dit met NA weergegeven moeten we in functie mean aangeven dat hij de onbekende gegevens niet mee moet nemen in de berekening (na.rm = TRUE), omdat het gemiddelde van onbekende getallen onbekend is:

mean(pr1, na.rm = T)
## [1] 29.5

We kunnen het ook in 1 stap berekenen:

mean(df$FPCM[df$NLACT == 1], na.rm = TRUE)
## [1] 29.5

Samenvatten van gegevens 2

Punt is nu dat productie per melkcontrole wordt gemeten, gemiddelde productie van vaarzen zegt dus niet zoveel, interessanter is het om de gemiddelde productie van vaarzen per melkcontrole te weten. Eerst moeten we weten hoeveel melkcontroles er zijn geweest:

unique(df$DATUM)
##  [1] 2011-01-28 2011-02-28 2011-03-31 2011-04-27 2011-05-30 2011-06-27 2011-07-29
##  [8] 2011-08-29 2011-09-29 2012-01-30 2012-02-28 2012-03-29 2012-04-28 2011-10-31
## [15] 2011-11-29 2011-12-28
## 16 Levels: 2011-01-28 2011-02-28 2011-03-31 2011-04-27 2011-05-30 ... 2012-04-28

en nu kunnen we de gemiddelde productie per melkcontrole berekenen. We zetten de verschillende datums eerst in een vector van datums die we dd noemen en bekijken de datums:

dd <- unique(df$DATUM)
dd
##  [1] 2011-01-28 2011-02-28 2011-03-31 2011-04-27 2011-05-30 2011-06-27 2011-07-29
##  [8] 2011-08-29 2011-09-29 2012-01-30 2012-02-28 2012-03-29 2012-04-28 2011-10-31
## [15] 2011-11-29 2011-12-28
## 16 Levels: 2011-01-28 2011-02-28 2011-03-31 2011-04-27 2011-05-30 ... 2012-04-28

vervolgens pakken bijvoorbeeld de eerste datum en gebruiken die om het gemiddelde te berekenen:

pr2 <- df$FPCM[df$DATUM == dd[1]]
mean(pr2, na.rm = TRUE)
## [1] 33

opnieuw kan het ook in een stap:

mean(df$FPCM[df$DATUM == dd[1]], na.rm = TRUE)
## [1] 33

We hebben nu een gemiddelde productie op de eerste melkcontrole, alleen willen we eigenlijk de gemiddelde productie van vaarzen op de eerste melkcontrole. We moeten R dus vertellen dat we FPCM van vaarzen op de eerste datum willen hebben:

pr3 <- df$FPCM[df$DATUM == dd[1] & df$NLACT == 1]
mean(pr3, na.rm = TRUE)
## [1] 28.9

of in een stap:

mean(df$FPCM[df$DATUM == dd[1] & df$NLACT == 1], na.rm = TRUE)
## [1] 28.9

Functie tapply

Hiervoor moesten we de datum en het laktatienummer handmatig invoeren, beter is het om een stukje code te schrijven dat als het ware over de laktatienummers loopt. Hiervoor gebruiken we functie tapply. Functie tapply past een bepaalde functie toe, op subsets van onze dataset, zie ?tapply.

We moeten functie tapply vertellen welke kolom we willen samenvatten, df$FPCM, op basis van welke kolom we de subsets willen maken, df$NLACT, en we willlen het gemiddelde berekenen met functie mean. Bedenk dat we moeten aangeven dat de NA’s niet moeten worden meegenomen, na.rm = TRUE:

tapply(df$FPCM, df$NLACT, mean, na.rm = TRUE)
##    1    2    3    4    5    6    7    8    9   10   11 
## 29.5 34.5 35.5 34.9 33.1 32.6 32.9 31.5 30.8 27.1 38.7

we kunnen de gemiddeldes ook in een reeks zetten die we bijvoorbeeld gms noemen:

gms <- tapply(df$FPCM, df$NLACT, mean, na.rm = TRUE)

Functie tapply op twee kolommen

Stel nu dat we de gemiddelde productie per laktatienummer en datum van melkcontrole willen berekenen, we moeten daarvoor in functie tapply vertellen dat we gegevens op basis van kolommen df$NLACt en df$DATUM willen samenvatten. We zetten het resultaat in tabel t1 en laten alleen de eerste 3 kolommen zien en de laatste kolom:

t1 <- tapply(df$FPCM, list(df$DATUM, df$NLACT), mean, na.rm = TRUE)
t1[, c(1:3, ncol(t1))]
##               1    2    3   11
## 2011-01-28 28.9 34.6 37.1   NA
## 2011-02-28 28.5 34.3 34.5   NA
## 2011-03-31 28.9 35.0 34.4   NA
## 2011-04-27 28.4 33.2 34.3   NA
## 2011-05-30 29.7 33.6 34.6   NA
## 2011-06-27 27.2 31.0 32.4   NA
## 2011-07-29 26.7 30.5 31.4   NA
## 2011-08-29 26.4 28.6 29.0   NA
## 2011-09-29 28.4 31.9 32.0 37.2
## 2011-10-31 28.6 32.9 34.9 32.1
## 2011-11-29 30.7 37.1 37.6 21.4
## 2011-12-28 31.7 37.8 40.5   NA
## 2012-01-30 31.3 37.1 39.1 39.3
## 2012-02-28 30.5 36.9 38.0 44.4
## 2012-03-29 31.5 37.1 37.4 50.2
## 2012-04-28 32.8 39.8 38.8 46.6

We hebben nu een tabel met gemiddelde producties, maar het kan ook erg nuttig zijn om het gemiddelde laktatiestadium van deze dieren te weten, daarvoor moeten we aangeven dat we tapply willen toepassen op kolom df$DIL. We laten opnieuw alleen de eerste 3 kolommen en de laatste kolom zien:

t2 <- tapply(df$DIL, list(df$DATUM, df$NLACT), mean, na.rm = TRUE)
t2[, c(1:3, ncol(t2))]
##              1   2   3  11
## 2011-01-28 190 175 147  NA
## 2011-02-28 203 170 156  NA
## 2011-03-31 193 174 165  NA
## 2011-04-27 196 191 180  NA
## 2011-05-30 208 200 193  NA
## 2011-06-27 212 204 180  NA
## 2011-07-29 218 205 183  NA
## 2011-08-29 190 198 169  NA
## 2011-09-29 194 178 167  30
## 2011-10-31 185 166 157  62
## 2011-11-29 175 167 155  91
## 2011-12-28 170 160 144  NA
## 2012-01-30 164 168 151  13
## 2012-02-28 166 173 159  42
## 2012-03-29 174 174 174  72
## 2012-04-28 187 184 196 102

en verder is het ook erg nuttig om te weten hoeveel dieren er zijn. Hiervoor gebruik ik altijd functie length, die aangeeft hoeveel elementen er in een lijst of vector zitten:

pr <- df$FPCM
length(pr)
## [1] 10274

nu gebruiken we in plaats van functie mean gewoon functie length, en laten het na.rm = TRUE weg:

t3 <- tapply(df$FPCM, list(df$DATUM, df$NLACT), length)
t3[, c(1:3, ncol(t3))]
##              1   2   3 11
## 2011-01-28 209 165 107 NA
## 2011-02-28 210 173 112 NA
## 2011-03-31 231 176 112 NA
## 2011-04-27 233 178 112 NA
## 2011-05-30 230 171 110 NA
## 2011-06-27 230 172 105 NA
## 2011-07-29 218 168 104 NA
## 2011-08-29 221 163 113 NA
## 2011-09-29 214 158 120  1
## 2011-10-31 228 168 112  1
## 2011-11-29 223 167 121  1
## 2011-12-28 235 166 118 NA
## 2012-01-30 236 172 121  1
## 2012-02-28 253 178 129  1
## 2012-03-29 259 182 131  1
## 2012-04-28 258 177 128  1

Combineer verschillende gegevens in 1 tabel

Tot nu bevatte de tabel gegevens van 1 type (FPCM, DIL, of aantal). Het is handiger en slimmer om bijvoorbeeld FPCM en aantal te combineren. Hiervoor schrijven we een eigen functie meanN omdat er geen standaard functie bestaat voor dit doel:

meanN <- function(x) paste(round(mean(x, na.rm = TRUE), 2), " (", length(x[!is.na(x)]), ")", 
    sep = "")

t4 <- tapply(df$FPCM, list(df$DATUM, df$NLACT), meanN)
t4[, 1:3]
##            1             2             3            
## 2011-01-28 "28.87 (208)" "34.64 (162)" "37.08 (106)"
## 2011-02-28 "28.54 (206)" "34.33 (170)" "34.47 (111)"
## 2011-03-31 "28.87 (229)" "35.05 (173)" "34.42 (110)"
## 2011-04-27 "28.44 (230)" "33.19 (178)" "34.32 (112)"
## 2011-05-30 "29.73 (230)" "33.61 (169)" "34.62 (108)"
## 2011-06-27 "27.21 (215)" "30.97 (167)" "32.45 (104)"
## 2011-07-29 "26.71 (218)" "30.54 (166)" "31.44 (103)"
## 2011-08-29 "26.36 (219)" "28.63 (161)" "29.03 (113)"
## 2011-09-29 "28.42 (214)" "31.9 (156)"  "32.05 (119)"
## 2011-10-31 "28.57 (224)" "32.9 (166)"  "34.88 (112)"
## 2011-11-29 "30.75 (222)" "37.14 (165)" "37.58 (120)"
## 2011-12-28 "31.71 (230)" "37.79 (166)" "40.55 (118)"
## 2012-01-30 "31.34 (234)" "37.14 (172)" "39.14 (121)"
## 2012-02-28 "30.48 (251)" "36.85 (178)" "38.04 (129)"
## 2012-03-29 "31.54 (257)" "37.14 (180)" "37.43 (130)"
## 2012-04-28 "32.79 (255)" "39.76 (174)" "38.79 (124)"

Groeperen van laktatienummers

Aantal dieren boven de 3 laktaties loopt snel terug en eigenlijk kunnen deze dieren best met elkaar samen worden gevoegd. Daarom maken we een nieuwe kolomn, df$NLACTcat die dieren van 3 en meer laktaties samenvoegt. We gebruiken hiervoor de functie cut, van het werkwoord knippen.

df$NLACTcat <- cut(df$NLACT, breaks = c(0, 1, 2, 20))
t5 <- tapply(df$FPCM, list(df$DATUM, df$NLACTcat), meanN)
t5
##            (0,1]         (1,2]         (2,20]       
## 2011-01-28 "28.87 (208)" "34.64 (162)" "35.47 (240)"
## 2011-02-28 "28.54 (206)" "34.33 (170)" "34.37 (243)"
## 2011-03-31 "28.87 (229)" "35.05 (173)" "33.75 (238)"
## 2011-04-27 "28.44 (230)" "33.19 (178)" "32.68 (243)"
## 2011-05-30 "29.73 (230)" "33.61 (169)" "33.17 (227)"
## 2011-06-27 "27.21 (215)" "30.97 (167)" "31.03 (218)"
## 2011-07-29 "26.71 (218)" "30.54 (166)" "29.98 (219)"
## 2011-08-29 "26.36 (219)" "28.63 (161)" "28.41 (227)"
## 2011-09-29 "28.42 (214)" "31.9 (156)"  "32.09 (243)"
## 2011-10-31 "28.57 (224)" "32.9 (166)"  "33.79 (232)"
## 2011-11-29 "30.75 (222)" "37.14 (165)" "36.32 (241)"
## 2011-12-28 "31.71 (230)" "37.79 (166)" "38.99 (234)"
## 2012-01-30 "31.34 (234)" "37.14 (172)" "38.72 (245)"
## 2012-02-28 "30.48 (251)" "36.85 (178)" "37.91 (257)"
## 2012-03-29 "31.54 (257)" "37.14 (180)" "37.7 (260)" 
## 2012-04-28 "32.79 (255)" "39.76 (174)" "38.4 (245)"

Groeperen van laktatiestadia

Het aantal dagen in laktatie hebben we in tabel t2 weergegeven. Mooier is het om dit in dezelfde tabel weer te geven, zoals gedaan is in de eerste slide. Daarom gaan we kolom df$DIL ook opknippen in logische catagorieen: (0-30 DIL), (31-60 DIL), (61-200 DIL), (201 + DIL), opnieuw met functie cut:

df$DILcat <- cut(df$DIL, breaks = c(0, 30, 60, 200, 1000))
t6 <- tapply(df$FPCM, list(df$DATUM, df$DILcat), meanN)
t6[, 1:3]
##            (0,30]       (30,60]      (60,200]     
## 2011-01-28 "35.15 (52)" "37.16 (68)" "34.76 (292)"
## 2011-02-28 "37.71 (51)" "36.36 (53)" "33.51 (305)"
## 2011-03-31 "33.73 (52)" "37.53 (55)" "34.39 (295)"
## 2011-04-27 "34.2 (28)"  "34.08 (59)" "34.27 (300)"
## 2011-05-30 "32.35 (26)" "36.75 (29)" "35.51 (276)"
## 2011-06-27 "29.81 (42)" "33.41 (29)" "32.74 (223)"
## 2011-07-29 "29.86 (41)" "33.83 (51)" "31.55 (200)"
## 2011-08-29 "28.43 (79)" "30.92 (53)" "30.44 (197)"
## 2011-09-29 "34.22 (61)" "33.13 (90)" "33.81 (189)"
## 2011-10-31 "32.23 (75)" "37.24 (62)" "34.05 (238)"
## 2011-11-29 "34.41 (67)" "37.38 (82)" "37.24 (268)"
## 2011-12-28 "35.4 (65)"  "40.94 (70)" "38.08 (307)"
## 2012-01-30 "36.27 (63)" "39.4 (69)"  "37.43 (318)"
## 2012-02-28 "35.69 (61)" "38.42 (71)" "37.07 (330)"
## 2012-03-29 "36.53 (49)" "39.22 (65)" "37.47 (324)"
## 2012-04-28 "36.37 (21)" "40.72 (55)" "38.76 (315)"

Volledige samenvatting

Als laatste zou het mooi zijn om een samenvatting te maken van datum, laktatiestadium en laktatienummer, bedenk dat we daarmee een drie-dimensionale tabel krijgen die moeilijk te interpreteren is. Met functie dim geef ik de grootte van elke dimensie weer:

t7 <- tapply(df$FPCM, list(df$DATUM, df$DILcat, df$NLACTcat), meanN)
dim(t7)
## [1] 16  4  3

Daarom moeten we tabel t7 eerst omzetten naar een lang formaat. We doen dit met functie melt uit het pakket reshape. Daarvoor moeten we dit pakket eerst installeren met functie install.packages en vervolgens laden met functie require:

install.packages("reshape")
require(reshape)
t7L <- melt(t7)
head(t7L)
##           X1     X2    X3      value
## 1 2011-01-28 (0,30] (0,1] 27.52 (20)
## 2 2011-02-28 (0,30] (0,1] 28.93 (10)
## 3 2011-03-31 (0,30] (0,1] 27.92 (28)
## 4 2011-04-27 (0,30] (0,1] 28.47 (13)
## 5 2011-05-30 (0,30] (0,1]  22.98 (9)
## 6 2011-06-27 (0,30] (0,1] 25.27 (15)

En vervolgens moeten we tabel t7L weer omzetten naar een leesbaardere tabel, t7B met functie cast uit pakket reshape:

t7B <- cast(t7L, X3 + X2 ~ X1)
t7B[, 1:5]
##        X3          X2  2011-01-28  2011-02-28  2011-03-31
## 1   (0,1]      (0,30]  27.52 (20)  28.93 (10)  27.92 (28)
## 2   (0,1] (200,1e+03]  29.25 (86)  27.94 (83)  28.46 (85)
## 3   (0,1]     (30,60]  29.06 (21)  29.72 (20)  27.72 (14)
## 4   (0,1]    (60,200]  28.75 (81)  28.77 (93) 29.62 (102)
## 5   (1,2]      (0,30]  41.05 (11)   38.5 (21)  42.29 (12)
## 6   (1,2] (200,1e+03]  28.15 (58)  29.56 (59)  29.96 (67)
## 7   (1,2]     (30,60]  42.32 (18)  40.54 (11)  39.54 (23)
## 8   (1,2]    (60,200]  36.86 (75)  35.92 (79)  37.16 (71)
## 9  (2,20]      (0,30]  39.33 (21)  41.27 (20)  38.73 (12)
## 10 (2,20] (200,1e+03]   27.3 (54)  28.45 (68)   26.9 (86)
## 11 (2,20]     (30,60]  39.83 (29)  40.31 (22)   42.6 (18)
## 12 (2,20]    (60,200] 37.19 (136) 35.38 (133) 36.78 (122)

Kleine verbeteringen aan t7B

Tabel t7B heeft nog een paar verbeterpuntjes:

df$DILcat <- cut(df$DIL, breaks = c(0, 30, 60, 200, 1000), labels = c(1, 2, 3, 4))
t7a <- tapply(df$FPCM, list(df$DATUM, df$DILcat, df$NLACTcat), meanN)
t7aL <- melt(t7a)
t7aB <- cast(t7aL, X3 + X2 ~ X1)
t7aB[, 1:5]
##        X3 X2  2011-01-28  2011-02-28  2011-03-31
## 1   (0,1]  1  27.52 (20)  28.93 (10)  27.92 (28)
## 2   (0,1]  2  29.06 (21)  29.72 (20)  27.72 (14)
## 3   (0,1]  3  28.75 (81)  28.77 (93) 29.62 (102)
## 4   (0,1]  4  29.25 (86)  27.94 (83)  28.46 (85)
## 5   (1,2]  1  41.05 (11)   38.5 (21)  42.29 (12)
## 6   (1,2]  2  42.32 (18)  40.54 (11)  39.54 (23)
## 7   (1,2]  3  36.86 (75)  35.92 (79)  37.16 (71)
## 8   (1,2]  4  28.15 (58)  29.56 (59)  29.96 (67)
## 9  (2,20]  1  39.33 (21)  41.27 (20)  38.73 (12)
## 10 (2,20]  2  39.83 (29)  40.31 (22)   42.6 (18)
## 11 (2,20]  3 37.19 (136) 35.38 (133) 36.78 (122)
## 12 (2,20]  4   27.3 (54)  28.45 (68)   26.9 (86)
t7aB$X3 <- factor(t7aB$X3)
levels(t7aB$X3)
## [1] "(0,1]"  "(1,2]"  "(2,20]"
levels(t7aB$X3) <- c("1 laktatie", "2 laktaties", "3 + laktaties")

t7aB$X2 <- factor(t7aB$X2)
levels(t7aB$X2)
## [1] "1" "2" "3" "4"
levels(t7aB$X2) <- c("0-30 DIL", "31-61 DIL", "61-200 DIL", "200+ DIL")
t7aB[, 1:4]
##               X3         X2  2011-01-28  2011-02-28
## 1     1 laktatie   0-30 DIL  27.52 (20)  28.93 (10)
## 2     1 laktatie  31-61 DIL  29.06 (21)  29.72 (20)
## 3     1 laktatie 61-200 DIL  28.75 (81)  28.77 (93)
## 4     1 laktatie   200+ DIL  29.25 (86)  27.94 (83)
## 5    2 laktaties   0-30 DIL  41.05 (11)   38.5 (21)
## 6    2 laktaties  31-61 DIL  42.32 (18)  40.54 (11)
## 7    2 laktaties 61-200 DIL  36.86 (75)  35.92 (79)
## 8    2 laktaties   200+ DIL  28.15 (58)  29.56 (59)
## 9  3 + laktaties   0-30 DIL  39.33 (21)  41.27 (20)
## 10 3 + laktaties  31-61 DIL  39.83 (29)  40.31 (22)
## 11 3 + laktaties 61-200 DIL 37.19 (136) 35.38 (133)
## 12 3 + laktaties   200+ DIL   27.3 (54)  28.45 (68)

Samenvatting

In dit onderdeel van de workshop hebben we het volgende behandeld:

Terug naar hoofdpagina van de cursus