Seite 1 von 1

Vollständigkeit der Daten prüfen und in neuer Variable speichern

Verfasst: Mo Okt 24, 2022 3:48 pm
von kosa
Hallo liebe Community,

ich habe noch eine weitere Frage zur Erstellung einer neuen Variable, die die Daten auf Vollständigkeit für jeden Teilnehmer prüft.
Durchgeführt wurde eine Befragung mit drei Messwiederholungen. Manche Personen haben allerdings nicht zu allen drei Messzeitpunkten teilgenommen (siehe Beispiel).
test<-data.frame(
"id" = c("A","A","A","B","B","C","C"),
"time" = c("1", "2","3","1", "2","2","3"))
Ich würde nun egrn eine neue Variable test$complete erstellen, die für jeden Teilnehmer (A, B oder C; abgespeichert in id) prüft, ob diese zu allen drei Messzeitpunkten teilgenommen wurde. Falls ja, soll das mit 1 kodoert werden, falls nein, dann mit 0. In dem vorliegenden Beispiel würde folgender Vektor entstehen: 1,1,1,0,0,0,0, da nur Teilnemer A zu allen drei Messzeitpunkten teilgenommen hat.

Man könnte zum Beispiel prüfen, ob drei Zeilen für den Teilnehmer vorhanden sind. Falls ja, dann 1. Falls nein, dann 0. Ich weiß nur nicht, wie man das programmiert.

Bin für jeden Hinweis dankbar. Danke und viele Grüße!

Re: Vollständigkeit der Daten prüfen und in neuer Variable speichern

Verfasst: Mo Okt 24, 2022 4:31 pm
von bigben
Hallo,

wenn Du einfach für jeden Teilnehmer wissen willst, ob drei Einträge vorhanden sind, ginge das hier:

Code: Alles auswählen

test<-data.frame(
  "id" = c("A","A","A","B","B","C","C"),
  "time" = c("1", "2","3","1", "2","2","3"))

tapply(test$time, test$id, \(x) length(x)==3)
## oder so:
by(test, test$id, \(x) nrow(x)==3)
Eine Variable, die das für jede Zeile anzeigt könnte man so konstruieren:

Code: Alles auswählen

apply(test, 1, \(l) sum(test$id == l["id"]) == 3 )
LG,
Bernhard