嗨,我想按一组特定日期(而不是根据“月”或“周”)分割数据框。
这是示例代码
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”。
非常感谢!
答案 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
将breaks
与Date
一起使用时,需要将cut
指定为Date
对象。还要注意,我添加了一个上下断点,因为您在示例中给出的break
点不覆盖Date
中df$ts
的范围。