按一组特定日期分割数据框

时间:2018-09-11 11:51:59

标签: r date

嗨,我想按一组特定日期(而不是根据“月”或“周”)分割数据框。

这是示例代码

id <- c(1:6)
ts <- as.Date(c("2018-06-01","2018-06-25","2018-06-03","2018-05-06","2018-04-30","2018-06-13"))
df <- data.frame(id,ts)
split(df,cut(ts,breaks = c("2018-05-01","2018-05-20","2018-06-14")))

但是它表示无效的休息时间。

我想知道在这种情况下如何指定休息时间?我也尝试过cut.dates并尝试了不同的格式,例如“ dd / mm / yy”。

非常感谢!

1 个答案:

答案 0 :(得分:1)

你是这个意思吗?

split(df, cut(
    df$ts, 
    breaks = as.Date(c("2018-04-30", "2018-05-01","2018-05-20","2018-06-14", "2018-06-30"))))
#$`2018-04-30`
#  id         ts
#5  5 2018-04-30
#
#$`2018-05-01`
#  id         ts
#4  4 2018-05-06
#
#$`2018-05-20`
#  id         ts
#1  1 2018-06-01
#3  3 2018-06-03
#6  6 2018-06-13
#
#$`2018-06-14`
#  id         ts
#2  2 2018-06-25

breaksDate一起使用时,需要将cut指定为Date对象。还要注意,我添加了一个上下断点,因为您在示例中给出的break点不覆盖Datedf$ts的范围。