【发布时间】:2019-04-05 10:41:14
【问题描述】:
我在下面提到了 R 中的数据框。
ID Date Type Value
K-1 2018-01-01 A 4
K-2 2018-01-01 B 7
K-3 2018-01-01 C 12
K-4 2018-01-02 A 6
K-5 2018-01-02 A 4
K-6 2018-01-02 B 15
K-7 2018-01-02 B 10
我想了解如何转换下面给定所需数据帧中的数据帧,其中A、B 和 C 对于每个日期都应该是静态的,无论该特定类型在该日期是否可用.
另外,我想按日期和Type统计<5的桶中的ID(如果值在1-4之间),5-10(如果值在5到10之间) 和>10(如果值大于 10)。
sum 列应包含特定日期和类型的总价值。
Count 列应包含按特定日期分组的ID 计数和Type。
必需的 DF
Date Count <5 5-10 >10 sum
2018-01-01 3 1 1 1 23
A 1 1 0 0 4
B 1 0 1 0 7
C 1 0 0 1 12
2018-01-02 4 1 2 1 35
A 2 1 1 0 10
B 2 0 1 1 25
C 0 0 0 0 0
我的代码:
Required_Output <- df1 %>%
group_by(Date, Type) %>%
dplyr::summarise(Count=n(),
A=sum(Type=='A'),
B=sum(Type=='B'),
C=sum(Type=='C')) %>%
ungroup() %>%
complete(Date, Type, fill=list(`Count`=0,A=0, B=0, C=0))
上面的代码没有给我想要的输出:(
【问题讨论】:
-
混合日期和因子水平可能不是最干净的解决方案。我猜你需要这个只是为了演示目的是正确的吗?如果没有,您可能不得不考虑使用另一个名为 Type 的变量。
-
用户@VectorJX 有一个nearly identical question,后来被删除了。巧合?一样的课程?同一用户?