用于创建精度/百分比变量的R代码

时间:2016-12-05 21:29:21

标签: r

我正在尝试添加到数据框的变量的R代码有问题。基本上,参与者回应了两类刺激(A和B),他们的反应可能是正确的或不正确的。我的数据集中的重要变量(列)是:ID(参与者的ID),刺激类型(A或B)和响应(正确或不正确)。

我想要做的是计算,为每个参与者创建两个“准确度得分”变量(列):一个列出刺激类型A的准确度百分比,一个用于刺激类型B。

我可以使用表函数轻松获得这些百分比,但是在我的数据集中创建这些变量时遇到了困难。非常感谢任何建议,谢谢!

1 个答案:

答案 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)