Neue Variable erstellen mit "wenn, dann" Funktion

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

Moderatoren: EDi, jogo

Antworten
juppi
Beiträge: 19
Registriert: Di Mär 13, 2018 3:55 pm

Neue Variable erstellen mit "wenn, dann" Funktion

Beitrag von juppi »

Hallo zusammen :) ,

ich habe folgenden Datensatz:

Code: Alles auswählen

dput(head(dat.ges,15))
structure(list(VP = c(11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 
12, 12, 12, 12, 13), Emotion = structure(c(4L, 6L, 7L, 3L, 2L, 
1L, 5L, 4L, 6L, 7L, 3L, 2L, 1L, 5L, 4L), .Label = c("Anger", 
"Disgust", "Fear", "Happy", "Neutral", "Sad", "Suprise"), class = "factor"), 
    EmotionScore = c(0.97, 0, 0, 0, 0, 0, 0, 0.97, 0, 0, 0, 0, 
    0.9, 0, 0), EmotionReal = c("Fear", "Fear", "Fear", "Fear", 
    "Fear", "Fear", "Fear", "Anger", "Anger", "Anger", "Anger", 
    "Anger", "Anger", "Anger", "Disgust")), .Names = c("VP", 
"Emotion", "EmotionScore", "EmotionReal"), row.names = c(NA, 
15L), class = "data.frame")

Code: Alles auswählen

> head(dat.ges,15)
   VP Emotion EmotionScore EmotionReal
1  11   Happy         0.97        Fear
2  11     Sad         0.00        Fear
3  11 Suprise         0.00        Fear
4  11    Fear         0.00        Fear
5  11 Disgust         0.00        Fear
6  11   Anger         0.00        Fear
7  11 Neutral         0.00        Fear
8  12   Happy         0.97       Anger
9  12     Sad         0.00       Anger
10 12 Suprise         0.00       Anger
11 12    Fear         0.00       Anger
12 12 Disgust         0.00       Anger
13 12   Anger         0.90       Anger
14 12 Neutral         0.00       Anger
15 13   Happy         0.00     Disgust
Daraus möchte ich gerne eine neue Variable in Form einer Dummy-Kodierung (1=True, 0=False) erstellen. Jedes mal wenn in der Variable EmotionScore eine Zahl >0 steht, soll abgeglichen werden, ob in dieser Zeile die Emotionen (Happy, Sad, Suprise, Fear, Disgust, Anger, Neutral) in den Variablen Emotion und EmotionReal übereinstimmen. Wenn dieser Fall nicht eintritt (Bsp. Happy - 0.97 - Fear) soll 0 kodiert werden, wenn der Fall eintritt (Bsp. Anger - 0.90 - Anger), soll 1 kodiert werden.

Wäre super, wenn mir jemand weiterhelfen könnte! :roll: :)
juppi
Beiträge: 19
Registriert: Di Mär 13, 2018 3:55 pm

Re: Neue Variable erstellen mit "wenn, dann" Funktion

Beitrag von juppi »

Damit habe ich es versucht:

Code: Alles auswählen

dat.ges$EmotionRight <- EmotionRigthEmotion==EmotionReal [EmotionScore>0]
Es werden aber leider die falschen Fälle ausgewählt :(
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Neue Variable erstellen mit "wenn, dann" Funktion

Beitrag von jogo »

Hallo juppi,

willkommen im Forum!
Richtig ist:

Code: Alles auswählen

dat.ges$EmotionRight <- with(dat.ges, ifelse((EmotionScore>0) & (Emotion==EmotionReal), 1, 0))
Wenn eine Kodierung als logical ausreichend ist, geht es kürzer:

Code: Alles auswählen

dat.ges$EmotionRight <- with(dat.ges, (EmotionScore>0) & (Emotion==EmotionReal) )
Gruß, Jörg
juppi
Beiträge: 19
Registriert: Di Mär 13, 2018 3:55 pm

Re: Neue Variable erstellen mit "wenn, dann" Funktion

Beitrag von juppi »

Super Danke :) :)
Antworten