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: 11
Registriert: Di Mär 13, 2018 3:55 pm

Neue Variable erstellen mit "wenn, dann" Funktion

Beitrag von juppi » Di Mär 13, 2018 4:36 pm

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: 11
Registriert: Di Mär 13, 2018 3:55 pm

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

Beitrag von juppi » Di Mär 13, 2018 5:28 pm

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: 1020
Registriert: Fr Okt 07, 2016 8:25 am

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

Beitrag von jogo » Di Mär 13, 2018 8:37 pm

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: 11
Registriert: Di Mär 13, 2018 3:55 pm

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

Beitrag von juppi » Mi Mär 14, 2018 11:36 am

Super Danke :) :)

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast