% group-6ren">
gpt4 book ai didi

r - 按 r 中的特定日期序列分组

转载 作者:行者123 更新时间:2023-12-04 11:02:38 25 4
gpt4 key购买 nike

我有一张有订单的 table |地方 |日期,如果每个订单是在前一个订单的第二天(时差 <= 1 天),则希望在一行中的一个地方对每个订单进行分组和计数。分组订单以显示较早的日期和实例计数。请看下面的例子。

输入:

| Order | Place | Date     |
|-------|-------|----------|
| 11 | A | 01.11.19 |
| 11 | A | 02.11.19 |
| 11 | A | 05.11.19 |
| 22 | B | 01.11.19 |
| 22 | D | 02.11.19 |
| 22 | D | 03.11.19 |
| 33 | A | 01.11.19 |

输出:
| Order | Place | Date     | Count |
|-------|-------|----------|-------|
| 11 | A | 01.11.19 | 2 |
| 11 | A | 05.11.19 | 1 |
| 22 | B | 01.11.19 | 1 |
| 22 | D | 02.11.19 | 2 |
| 33 | A | 01.11.19 | 1 |

最佳答案

这是另一个使用 dplyr 的解决方案:

library(dplyr)

df1 %>%
mutate(Date = as.Date(Date, "%d.%m.%y")) %>%
group_by(Order, Place, DateLag = !((Date - lag(Date, default = first(Date)))>1)) %>%
summarise(Date = first(Date), Count = n()) %>%
ungroup %>% select(-DateLag) %>%
arrange(Order, Place, Date)

># # A tibble: 5 x 4
># Order Place Date Count
># <int> <chr> <date> <int>
># 1 11 A 2019-11-01 2
># 2 11 A 2019-11-05 1
># 3 22 B 2019-11-01 1
># 4 22 D 2019-11-02 2
># 5 33 A 2019-11-01 1

数据:

read.table(text=" Order  Place  Date     
11 A 01.11.19
11 A 01.11.19
11 A 05.11.19
22 B 01.11.19
22 D 02.11.19
22 D 03.11.19
33 A 01.11.19", header=T, stringsAsFactors=F) -> df1

关于r - 按 r 中的特定日期序列分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58701676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com