Wie werden Daten für eine bestimmte Spalte mit ddply untergeordnet?

Ich würde gerne wissen, ob es einen einfachen Weg gibt, das zu erreichen, was ich unten mit @ beschreibddply. Mein Datenrahmen beschreibt ein Experiment mit zwei Bedingungen. Die Teilnehmer mussten zwischen Optionen wählenA undB, und wir haben aufgezeichnet, wie lange sie für die Entscheidung gebraucht haben und ob ihre Antworten korrekt waren oder nicht.

Ich benutzeddply, um Durchschnittswerte nach Bedingung zu erstellen. Die KolumnenAccurate fasst die Anzahl der genauen Antworten in jeder Bedingung zusammen. Ich möchte auch wissen, wie viel Zeit sie gebraucht haben, um zu entscheiden und es in der Spalte @ auszudrückeRT. Ich möchte jedoch die durchschnittlichen Antwortzeiten berechnennur wenn die Teilnehmer die richtige Antwort bekommen haben (d. h.Accuracy==1). Derzeit kann der folgende Code nur durchschnittliche Reaktionszeiten für alle Antworten berechnen (genaue und ungenaue). Gibt es eine einfache Möglichkeit, diese zu ändern, um durchschnittliche Antwortzeiten zu erhalten, die nur in genauen Versuchen berechnet werden?

Siehe Beispielcode unten und danke!

library(plyr)

# Create sample data frame. 
Condition = c(rep(1,6), rep(2,6))                               #two conditions
Response  = c("A","A","A","A","B","A","B","B","B","B","A","A")  #whether option "A" or "B" was selected
Accuracy  = rep(c(1,1,0),4)                                     #whether the response was accurate or not
RT        = c(110,133,121,122,145,166,178,433,300,340,250,674)  #response times
df        = data.frame(Condition,Response, Accuracy,RT)

head(df)

  Condition Response Accuracy  RT
1         1        A        1 110
2         1        A        1 133
3         1        A        0 121
4         1        A        1 122
5         1        B        1 145
6         1        A        0 166

# Calculate averages.  
avg <- ddply(df, .(Condition), summarise, 
                 N          = length(Response),
                 nAccurate  = sum(Accuracy),
                 RT         = mean(RT))

# The problem: response times are calculated over all trials. I would like
# to calculate mean response times *for accurate responses only*.

avg
  Condition N nAccurate       RT
          1 6         4 132.8333
          2 6         4 362.5000

Antworten auf die Frage(4)

Ihre Antwort auf die Frage