Neue Spalte mit Daten aus anderen Spalten unter Grouping Bedingungen auffüllen
Verfasst: Do Dez 08, 2022 5:07 pm
Liebe Alle,
Ich habe einen Längschnittsdatensatz zu zwei Messzeitpunkten, indem jeder Teilnehmer zwei Zeilen hat. Die erste Zeile speichert die die Angaben des Teilnehmenden aus der ersten Befragung und die zweite Zeile speichert die Antworten desselben Teilnehmenden aus der ersten Befragung. Hier ein Beipiel.
Es fällt auf, dass nicht jeder Teilnehmer zu jedem Zeitpunkt sein Geschlecht angegeben hat, wodurch es schwierig ist diese bespielhafte Variable als Moderator in Analysen zu verwenden.
Ich würde daher gern eine neue Variable bilden, in der die NAs mit den Angaben aus erster oder zweiter Befragung ausgefüllt werden, jenachdem, an welcher Stelle es angegeben wurde.
Ich habe bereits versucht die ave Funktion zu verwenden, aber da die Variable gender nicht numerisch ist, bekomme ich da eine Fehlermeldung.
Für numerische Variablen haben diese Befehle in der Vergangenheit funktioniert:
Kann jemand helfen?
Ich habe einen Längschnittsdatensatz zu zwei Messzeitpunkten, indem jeder Teilnehmer zwei Zeilen hat. Die erste Zeile speichert die die Angaben des Teilnehmenden aus der ersten Befragung und die zweite Zeile speichert die Antworten desselben Teilnehmenden aus der ersten Befragung. Hier ein Beipiel.
Code: Alles auswählen
dat<-data.frame(
"id" = c("A","A","B","B","C","C"),
"time" = c("1", "2","1", "2","1","2")
"gender" = c("male","male","female", "NA","NA","male"))
Ich würde daher gern eine neue Variable bilden, in der die NAs mit den Angaben aus erster oder zweiter Befragung ausgefüllt werden, jenachdem, an welcher Stelle es angegeben wurde.
Ich habe bereits versucht die ave Funktion zu verwenden, aber da die Variable gender nicht numerisch ist, bekomme ich da eine Fehlermeldung.
Für numerische Variablen haben diese Befehle in der Vergangenheit funktioniert:
Code: Alles auswählen
dat$mod_gender <- ave(dat$gender, dat$id, FUN=function(x) x[1])
dat$mod_gender[is.na(dat$mod_gender)] <- ave(dat$gender[is.na(dat$mod_gender)], dat$id, FUN=function(x) x[2])