当每个条件的总数不同时计算平均值
我正在与 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