På denne side gennemgås teknikker til at opdele en dataframe, eller alternativt foretage en beregning på en del af en dataframe. Bemærk: Opdeling af data i forbindelse med grafer, gennemgås på siderne om grafer - det er i store træk ret nemt :-)
Bemærk funktionen cat() som sætter tekststrenge sammen
og printer resultatet.
myFrame <- dget("https://statepi.statnoter.dk/data/myDataset.robj")
head(myFrame)
id køn alder bmi livvidde P-glucose(faste)
1 76891 2 20 36.1 105.0 4.496
2 79112 2 22 36.4 105.8 5.107
3 82414 1 68 28.6 104.2 NA
4 82116 2 18 46.7 128.4 5.384
5 74381 2 25 23.7 82.1 4.774
6 75714 1 54 23.9 88.8 8.660
cat("Antal rækker:", nrow(myFrame)) #vis antal rækker, og sæt en pæn tekst på
Antal rækker: 200
Hvis man ønsker en delmængde af det samlede datasæt, som man så kan
regne videre på, gøres det med funktionen subset, f.eks.
som herunder. subset skal bruge to parametre, dels den
dataframe man ønsker en delmængde af, dels den betingelse man ønsker at
filtrere efter. Det kan være at man kun ønsker de rækker der stammer fra
mænd, eller kun de rækker der stammer fra kvinder. I
myFrame svarer kvinderne til værdien 2 i kolonnen
køn, dvs. for at få kvinderne kan man skrive
køn==2. Bemærk, at der altid skal benyttes to lighedstegn,
når man skal skrive denne slags “betingelse”.
myFrame.women <- subset(myFrame, køn == 2) #bemærk at man skal benytte 2 lighedstegn, når man sammenligner
head(myFrame.women)
id køn alder bmi livvidde P-glucose(faste)
1 76891 2 20 36.1 105.0 4.496
2 79112 2 22 36.4 105.8 5.107
4 82116 2 18 46.7 128.4 5.384
5 74381 2 25 23.7 82.1 4.774
9 81163 2 79 26.6 91.8 4.885
10 81173 2 50 44.9 108.2 5.829
cat("Antal kvinder i datasættet:", nrow(myFrame.women))
Antal kvinder i datasættet: 108
#eller hvis man kun vil have personer der både er kvinde OG ældre end 40 år (40 år inkl):
myFrame.older <- subset(myFrame, køn == 2 & alder >= 40)
head(myFrame.older)
id køn alder bmi livvidde P-glucose(faste)
9 81163 2 79 26.6 91.8 4.885
10 81173 2 50 44.9 108.2 5.829
13 74804 2 51 29.8 100.3 5.718
17 77265 2 41 41.3 109.4 5.718
18 79130 2 47 32.5 NA 6.273
19 79675 2 47 24.4 91.8 5.495
cat("Antal kvinder ældre end 40 år (inkl):", nrow(myFrame.older))
Antal kvinder ældre end 40 år (inkl): 52
Har du behov for mere komplicerede delsæt, så spørg din underviser.
Hvis man ønsker et datasæt som kun indeholder de rækker hvor der ikke
mangler målinger, kan man benytte funktionen
complete.cases. Bemærk:
complete.cases(myFrame) giver de rækkenumre som er
komplette - altså indeholder valide data i alle kolonner. Derefter
udtages disse rækker fra myFrame med notationen
myFrame[rækkenumre,kolonnenummer]. Ved at efterlade
kolonennenummer tomt udtages alle kolonner.
myFrame.complete <- myFrame[complete.cases(myFrame), ]
cat("Antal komplette rækker:", nrow(myFrame.complete))
Antal komplette rækker: 187