我正在尝试添加到数据框的变量的R代码有问题。基本上,参与者回应了两类刺激(A和B),他们的反应可能是正确的或不正确的。我的数据集中的重要变量(列)是:ID(参与者的ID),刺激类型(A或B)和响应(正确或不正确)。
我想要做的是计算,为每个参与者创建两个“准确度得分”变量(列):一个列出刺激类型A的准确度百分比,一个用于刺激类型B。
我可以使用表函数轻松获得这些百分比,但是在我的数据集中创建这些变量时遇到了困难。非常感谢任何建议,谢谢!
答案 0 :(得分:0)
如果你有一个带有字符刺激的data.frame mydata
和一个TRUE / FALSE响应,你可以使用
library(dplyr)
result <- mydata %>%
group_by(ID, stimtype) %>%
summarize(pct_response = 100 * mean(response, na.rm = T))
这将逻辑响应(T / F)解释为1/0,并且取平均值将给出给定ID和刺激类型的百分比。但是,每个ID的结果将有两行,每个刺激类型一个。如果您希望结果分为两列,则可以使用tidyr::spread
library(tidyr)
result %>%
spread(key = stimtype, value = pct_response)