Werte neuer Variable in Abhängigkeit anderer Spaltenwerte

Allgemeine Statistik mit R, die Test-Methode ist noch nicht bekannt, ich habe noch keinen Plan!

Moderatoren: EDi, jogo

Antworten
kosa
Beiträge: 27
Registriert: Mo Sep 02, 2019 6:47 pm

Werte neuer Variable in Abhängigkeit anderer Spaltenwerte

Beitrag von kosa »

Liebe Community,

ich habe eine Frage zur Datensatzaufbereitung. In einer Umfrage wurden dieselben Personen zu zwei Messzeitpunkten zu einer Reihe verschiedener Variablen befragt. Dabei entstand ein Datensatz im Long-Format, d.h. Angaben jedes Teilnehmer/jeder Teilnehmerin werden in zwei Zeilen gespeichert. Jede Zeile repräsentiert die Angaben dieser Person zu dem jeweiligen Messzeitpunkt (siehe Beispiel). Personen haben dabei individuelle Teilnahmecodes. Derselbe Teilnahmecode zeigt somit an, dass es sich um Angaben der selben Person handelt.

Code: Alles auswählen

Teilnahmecode   Messzeitpunkt      Risikowahrnehmung   ....
DB6M                   1                           6
DB6M                   2                           4
TH4D                   1                           2
TH4D                   2                           3
...
Nun möchte ich eine neue Variable "Risikowahrnehmung.complete" erstellen, die mir anzeigt, ob die Angaben vollständig sind. Es könnte nämlich sein, dass eine Person zu beiden Messzeitpuntken oder zu einem der beiden Messzeitpunkte keine Angabe gemacht hat und somit Werte fehlen (NAs).In der neuen Variable möchte ich dies für jede Person prüfen lassen. Wenn Die Person ein oder mehr NAs hat, dann sollte da eine 0 kodiert werden. Wenn die Person keine NAs hat, dann soll dort eine 1 stehen (siehe Beispiel)

Code: Alles auswählen

Teilnahmecode   Messzeitpunkt      Risikowahrnehmung      Risikowahrnehmung.complete
DB6M                   1                           6                                    1
DB6M                   2                           4                                    1
TH4D                   1                           2                                    1
TH4D                   2                           3                                    1
SU6H                   1                          NA                                   0
SU6H                   2                           3                                    0
VG9S                   1                          NA                                   0
VG9S                   2                          NA                                   0
...

Kann mir jemand sagen, wie ich das am besten programmiere?

Hier noch ein reproduzierbares Beispiel:

Code: Alles auswählen

data <- data.frame(
  code = c("AH6M","AH6M","BD7M","BD7M","SH9L","SH9L"),
  time = c(1,2,1,2,1,2),
  risk = c(6,7,NA,3,NA,NA))

Ich habe bereits den Hinweis bekommen, dass sich dieses Problem womöglich recht einfach lösen lässt, indem man die ave()-Funktion benutzt. Ich komme jedoch nicht weiter beim Schreiben der Funktion, in der man noch festlegen müsste, dass eine 0 kodiert werden soll, falls es mind. ein NA gibt und eine 1, falls es kein NA gibt:

Code: Alles auswählen

dat$risk.complete <- ave(dat$risk, dat$code, FUN = function(x) ...)
Vielen Dank vorab und liebe Grüße!
Athomas
Beiträge: 769
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Werte neuer Variable in Abhängigkeit anderer Spaltenwerte

Beitrag von Athomas »

Code: Alles auswählen

data <- data.frame(
  code = c("AH6M","AH6M","BD7M","BD7M","SH9L","SH9L"),
  time = c(1,2,1,2,1,2),
  risk = c(6,7,NA,3,NA,NA))

SpezFun <- function(x) 1 - any(is.na(x))

data$risk.complete <- ave(data$risk, data$code, FUN = SpezFun)
kosa
Beiträge: 27
Registriert: Mo Sep 02, 2019 6:47 pm

Re: Werte neuer Variable in Abhängigkeit anderer Spaltenwerte

Beitrag von kosa »

Vielen Dank. Funktioniert wunderbar. :)
Antworten