【发布时间】:2021-08-17 13:44:01
【问题描述】:
我有一个可行的解决方案,但是在汇总数据时是否有一个 cleaner 或更多 efficient 一个?
如下数据框:
set.seed(101)
dtf <- data.frame(group=rep(c("A", "B", "C"),each=5),
item_id=sample(1:1000,size = 15,replace = F),
days_to_sale=sample(1:20,size = 15,replace = T))
我计算下表(计数是累积的)
| group | count_items | sold_in_1_d | sold_in_5_d | sold_in_20_d |
|---|---|---|---|---|
| A | 5 | 0 | 3 | 5 |
| B | 5 | 1 | 1 | 5 |
| C | 5 | 0 | 0 | 5 |
使用此代码
dtf%>%
group_by(group)%>%
summarise(count_total=n(),
sold_in_1_d= length(days_to_sale[days_to_sale<=1]),
sold_in_5_d= length(days_to_sale[days_to_sale<=5]),
sold_in_20_d= length(days_to_sale[days_to_sale<=20]))
但我想将 length() 更改为 n() 并可能缩短子集?
有更好、更清洁的解决方案吗?
【问题讨论】: