想要创建一个从开始日期到结束日期的分钟序列,但是在输出中省略了星期六和星期日。
我可以创建序列,但是不知道如何在周六和周日省略。
并且也不想在输出中包含秒部分以及“ IST”部分。
seq.POSIXt( as.POSIXct( "2019/06/21"), as.POSIXct( "2019/06/30"), "min")
如果有任何其他函数或方法可以更快或更简单地执行此操作,将不胜感激。 TIA
答案 0 :(得分:1)
使用库timeDate可以帮助解决问题:
library(timeDate)
have = seq.POSIXt( as.POSIXct( "2019/06/21"), as.POSIXct( "2019/06/30"), "min")
want = have[isWeekday(have)]
答案 1 :(得分:0)
生成序列后,可以使用weekdays
过滤掉星期六和星期日以外的日子,然后使用format
过滤出所需格式的输出。
all_time <- seq.POSIXt( as.POSIXct( "2019/06/21"), as.POSIXct( "2019/06/30"), "min")
format(all_time[!weekdays(all_time) %in% c("Saturday", "Sunday")], "%Y-%m-%d %H:%M")
# [1] "2019-06-21 00:00" "2019-06-21 00:01" "2019-06-21 00:02" "2019-06-21 00:03"
# "2019-06-21 00:04" "2019-06-21 00:05" "2019-06-21 00:06" "2019-06-21 00:07"
# "2019-06-21 00:08" "2019-06-21 00:09" ......
@thelatemail指出weekdays
是与语言环境相关的,如果您使用非英语语言环境,则以上内容将无效。相反,我们可以使用工作日删除周末。
format(all_time[!format(all_time, "%u") %in% c(6, 7)], "%Y-%m-%d %H:%M")