我试图计算一个总的总和(基于一个变量)的部分总和(基于两个变量)为一个给定的条件在一组由。这是可能的,使用dplyr检索所有的值在同一视图?
输入数据:
view(df %>%
group_by(order, type) %>%
summarize(total_by_order_type = n(),
total_by_order = n())
)
|order|type|total_by_order_type|total_by_order|
|1 |A | 5 | 5 |
|1 |B | 7 | 7 |
|2 |A | 2 | 2 |
|3 |A | 10 | 10 |
|3 |B | 6 | 6 |
需要输出:
我需要的是列“total_by_order”按顺序检索总计,即按顺序检索“total_by_order_type”的总和
|order|type|total_by_order_type|total_by_order|
|1 |A | 5 | 12 |
|1 |B | 7 | 12 |
|2 |A | 2 | 2 |
|3 |A | 10 | 16 |
|3 |B | 6 | 16 |
3条答案
按热度按时间djmepvbi1#
谢谢大家。下面的代码是我试图复制的
输出:
yvfmudvl2#
一种简单的方法是分别创建观测计数,然后进行连接。假设您需要的是顺序和类型的观测数,而不是值的总和,因为您在
summarise
中使用n()
如果不需要行计数,而需要列的总和,则将
n()
交换为sum
roejwanj3#
你需要巧妙地使用group_by。首先你按“type”列分组,然后计数,然后在“order”列上再做一次group_by。