首页 > 解决方案 > R - 你如何计算两个 group_by() 函数中关联的行数?

问题描述

我有一个数据集(参见下面的示例),其中每个人都经历了两个会话,每个会话有 4 个试验。在每次试验中,他们可以选择正确的 (1) 或错误的 (0),由y变量指定。我正在尝试计算每个会话中每个人的正确选择率。(这是一个示例数据集,真实的数据集更大并且有更多行,所以我不想手动执行此操作

df
head(df, 16)
   row name session_number y
1    1  Tom              1 1
2    2  Tom              1 1
3    3  Tom              1 0
4    4  Tom              1 0
5    5  Tom              2 1
6    6  Tom              2 0
7    7  Tom              2 1
8    8  Tom              2 0
9    9  Rob              1 0
10  10  Rob              1 1
11  11  Rob              1 0
12  12  Rob              1 1
13  13  Rob              2 0
14  14  Rob              2 1
15  15  Rob              2 0
16  16  Rob              2 1

例如,我想知道 Tom 在他的第一次训练中,在 0.50 次试验中选择正确。这是通过将 Y 相加并除以与“Tom”和“Session 1”相关联的行数来计算的。尽管在更大的数据集中,我似乎无法弄清楚如何计算这些行数。

我尝试使用 group_by() 和 mutate(),但我似乎仍然无法让它工作,因为 count() 不起作用。

by_name_by_session <- df %>%
  group_by(df$name) %>%
  group_by(session_number) %>%
  mutate(rate = (sum(df$y)/count(df$name)))

提前感谢任何可以提供帮助的人!

标签: rdplyrdata-manipulation

解决方案


推荐阅读