【问题标题】:How do I find proportions correct in a tidydata format?如何在 tidydata 格式中找到正确的比例?
【发布时间】:2018-09-14 08:32:51
【问题描述】:

目前我有一个 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 的正确比例。我想以某种方式找到第二列和第三列中的值是否对应(实际值不同,一列是两位数之一,另一列是两个字之一)

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

【问题讨论】:

标签: r math multiple-columns percentage tidy


【解决方案1】:

这是一个分组摘要,尽管有一些事情使它难以立即发现。首先,R 在大多数情况下都是矢量化的,所以当我做pressed == correct 时,这会给出一个长度为 7 的逻辑向量。然后,mean 自动将TRUE 转换为1FALSE 转换为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 年 4 月 4 日创建。

【讨论】:

  • 这太棒了!!我会想办法尝试一下,但我没有在问题中使用我的实际数据的值。我想总结的数据实际上是相同/不同的,78(不同)和 83(不同)。我该怎么做呢?我是否应该以某种方式将具有相同/不同的列协调到 78 和 83,然后执行您编写的内容?
  • 抱歉,我仍然不清楚您的专栏中的实际内容。您可以查看 recode 以换出直接替换的值。
  • 感谢您的帮助!我一直在尝试使用重新编码转换数据,但一直收到错误 $operator is invalid for atomic objects
  • 我有一列的值为“相同”和“不同”,另一列的值为“78”或“83”。
  • 这非常有帮助。 “正确”是否应该是其中具有相同/不同值的列?因为我试图使用“subjects_data$same_different”而不是正确的,而 R 给了我一个错误,说 $ 不能用于原子对象。我应该改用别的东西吗?
猜你喜欢
  • 2013-07-06
  • 1970-01-01
  • 2022-11-02
  • 1970-01-01
  • 2010-11-24
  • 1970-01-01
  • 2015-03-21
  • 2017-12-11
  • 2021-12-17
相关资源
最近更新 更多