如何在 tidydata 格式中找到正确的比例?

How do I find proportions correct in a tidydata format?

目前我有一个 tidydata 格式的数据文件,其中有多个主题和单独的答案。所以是这样的

ID |Button-Pressed | Correct_Answer

1  A  B
1  A  B
1  A  B 
1  B  A  
1  B  A  
2  A  B  
2  A  A

所以我想做的是为每个 ID 找到正确的比例。我想以某种方式找到第2列和第3列中的值是否对应(实际值不同,一列是两个数字之一,另一列是两个单词之一)

那么,我如何想出一些方法来制定一个 table,其中每个参与者的正确比例都列在它旁边的一列中?是否有某种现有功能可以帮助我?

这是一个分组摘要,虽然有一些事情使得立即发现有点棘手。首先,R 在大多数情况下都是向量化的,所以当我执行 pressed == correct 时,这会给出一个长度为 7 的逻辑向量。然后,mean 自动将 TRUE 转换为 1,将 FALSE 转换为 0,因此平均值实际上只是正确的比例。

编辑:包括一个使用 recode.

的例子
library(tidyverse)
tbl <- tibble(
  id = c(1, 1, 1, 1, 1, 2, 2),
  pressed = c("78", "78", "78", "83", "83", "78", "78"),
  correct = c("different", "different", "different", "same", "same", "different", "same")
)

tbl %>%
  mutate(correct = recode(correct, same = "78", different = "83")) %>% 
  group_by(id) %>%
  summarise(pct_correct = mean(pressed == correct) * 100)
#> # A tibble: 2 x 2
#>      id pct_correct
#>   <dbl>       <dbl>
#> 1    1.          0.
#> 2    2.         50.

reprex package (v0.2.0) 创建于 2018-04-04。