Daten in R unterteilen
R verfügt über leistungsstarke Indexierungsfunktionen für den Zugriff auf Objektelemente. Diese Merkmale können verwendet werden, um Variablen und Beobachtungen auszuwählen und auszuschließen. Die folgenden Codeschnipsel zeigen, wie du Variablen und Beobachtungen beibehalten oder löschen kannst und wie du Stichproben aus einem Datensatz ziehst.
Auswählen (Behalten) von Variablen
# select variables v1, v2, v3
myvars <- c("v1", "v2", "v3")
newdata <- mydata[myvars]
# another method
myvars <- paste("v", 1:3, sep="")
newdata <- mydata[myvars]
# select 1st and 5th thru 10th variables
newdata <- mydata[c(1,5:10)]
Um dies interaktiv zu üben, kannst du die Übungen zur Auswahl von Datenrahmenelementen im Kapitel "Datenrahmen" in dieser Einführung in R ausprobieren .
Variablen ausschließen (DROPPING)
# exclude variables v1, v2, v3
myvars <- names(mydata) %in% c("v1", "v2", "v3")
newdata <- mydata[!myvars]
# exclude 3rd and 5th variable
newdata <- mydata[c(-3,-5)]
# delete variables v3 and v5
mydata$v3 <- mydata$v5 <- NULL
Auswahl der Beobachtungen
# first 5 observations
newdata <- mydata[1:5,]
# based on variable values
newdata <- mydata[ which(mydata$gender=='F'
& mydata$age > 65), ]
# or
attach(mydata)
newdata <- mydata[which(gender=='F' & age > 65),]
detach(mydata)
Auswahl mit der Subset-Funktion
Die Funktion subset( ) ist der einfachste Weg, um Variablen und Beobachtungen auszuwählen. Im folgenden Beispiel wählen wir alle Zeilen aus, die einen Wert von Alter größer oder gleich 20 oder Alter kleiner als 10 haben. Wir behalten die Spalten ID und Gewicht.
# using subset function
newdata <- subset(mydata, age >= 20 | age < 10,
select=c(ID, Weight))
Im nächsten Beispiel wählen wir alle Männer über 25 Jahre aus und behalten die Variablen Gewicht bis Einkommen (Gewicht, Einkommen und alle Spalten dazwischen).
# using subset function (part 2)
newdata <- subset(mydata, sex=="m" & age > 25,
select=weight:income)
Um die Funktion subset() zu üben, kannst du diese interaktive Übung zur Unterteilung von data.tables ausprobieren.
Zufallsstichproben
Verwende die Funktion sample( ), um eine Zufallsstichprobe der Größe n aus einem Datensatz zu ziehen.
# take a random sample of size 50 from a dataset mydata
# sample without replacement
mysample <- mydata[sample(1:nrow(mydata), 50,
replace=FALSE),]