如何对 tidyverse 中不同行的值求和?
How do I sum values from different rows in the tidyverse?
我有一个如下所示的数据框:
WORD CATEGORY n
<fct> <fct> <int>
1 A X 4
2 B X 3
3 C X 6
4 C Y 3
5 D X 2
6 E X 2
7 F Y 2
我想添加一个列 sum
,它根据 CATEGORY
将列 n
中的值加在一起。因此,例如,在第 3 行和第 4 行中,sum
列的值将为 9.
完整数据集如下所示:
WORD CATEGORY n sum
<fct> <fct> <int> <int>
1 A X 4 4
2 B X 3 3
3 C X 6 9
4 C Y 3 9
5 D X 2 2
6 E X 2 2
7 F Y 2 2
如何在 tidyverse 中执行此操作?
如果我们计算 CATEGORY
中唯一值的数量并将其添加到分组变量中,我们可以直接对 n 求和:
dt %>%
group_by(WORD) %>%
mutate(uni=length(unique(CATEGORY))) %>%
group_by(WORD,uni) %>%
mutate(sum=sum(n)) %>%
ungroup %>%
select(-uni)
# A tibble: 7 x 4
WORD CATEGORY n sum
<fct> <fct> <int> <int>
1 A X 4 4
2 B X 3 3
3 C X 6 9
4 C Y 3 9
5 D X 2 2
6 E X 2 2
7 F Y 2 2
我有一个如下所示的数据框:
WORD CATEGORY n
<fct> <fct> <int>
1 A X 4
2 B X 3
3 C X 6
4 C Y 3
5 D X 2
6 E X 2
7 F Y 2
我想添加一个列 sum
,它根据 CATEGORY
将列 n
中的值加在一起。因此,例如,在第 3 行和第 4 行中,sum
列的值将为 9.
完整数据集如下所示:
WORD CATEGORY n sum
<fct> <fct> <int> <int>
1 A X 4 4
2 B X 3 3
3 C X 6 9
4 C Y 3 9
5 D X 2 2
6 E X 2 2
7 F Y 2 2
如何在 tidyverse 中执行此操作?
如果我们计算 CATEGORY
中唯一值的数量并将其添加到分组变量中,我们可以直接对 n 求和:
dt %>%
group_by(WORD) %>%
mutate(uni=length(unique(CATEGORY))) %>%
group_by(WORD,uni) %>%
mutate(sum=sum(n)) %>%
ungroup %>%
select(-uni)
# A tibble: 7 x 4
WORD CATEGORY n sum
<fct> <fct> <int> <int>
1 A X 4 4
2 B X 3 3
3 C X 6 9
4 C Y 3 9
5 D X 2 2
6 E X 2 2
7 F Y 2 2