当每个条件的总数不同时计算平均值

我正在与 R 合作。

在这里,我分享了我的数据样本...

structure(list(column_a = c("1_1", "1_1", "1_2", "1_2", "1_2", 
"2_1", "2_2", "2_2", "3_1", "3_2"), column_b = c("kitchen", "tree", 
"hate", "kind", "table", "dog", "human", "car", "moon", "rage"
)), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"
))

   column_a column_b
1       1_1  kitchen
2       1_1     tree
3       1_2     hate
4       1_2     kind
5       1_2    table
6       2_1      dog
7       2_2    human
8       2_2      car
9       3_1     moon
10      3_2     rage

我需要计算条件(1_1、1_2 等)产生的总单词的平均值。我唯一的问题是以“_1”结尾的条件总数为 50,以“_2”结尾的条件总数为 100。

因此,由于条件“1_1”产生了两个词(在样本中),我应该通过除以 50 来计算平均值。这是 2/50 = 0.04。但是,在计算“1_2”条件的平均值时,我需要除以 100。这是 3/100 = 0.03。

我需要创建一个列,该列具有条件产生的总单词的平均值,考虑到某些条件需要按 50 计算,而其他条件需要按 100 计算。我怎么能做到这一点,并且结果仍然相同柱子?

回答

只需按组计数并计算平均值:

df %>% 
  group_by(column_a) %>% 
  add_count() %>% 
  summarise(mean_group = mean(n))

输出:

  column_a mean_group
  <chr>         <dbl>
1 1_1               2
2 1_2               3
3 2_1               1
4 2_2               2
5 3_1               1
6 3_2               1


以上是当每个条件的总数不同时计算平均值的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>