我正在尝试创建一个小时矢量,时间间隔为20分钟,从上午9:00到下午15:40,如下所示:
09:00, 09:20, 09:40, 10:00, 10:20... 15:00, 15:20, 15:40.
我正在使用sprintf命令。
如果我使用
sprintf("%02d:00", c(09.00:15.00))
我得到了
[1] "09:00" "10:00" "11:00" "12:00" "13:00" "14:00" "15:00"
我用过之前的ggplot图表并且成功了,虽然我还在学习如何使用它。
然而,我认为我可以使用像
这样的东西sprintf("%02d:00"|"%02d:20", c(09.20:15.40))
获取
[1] "09:20" "10:00" "10:20" "11:00" "11:20"... "14:00" "14:20" "15:00" "15:20"
但我知道我不能,但这不是一个数值。我想知道为什么没有办法解决这个问题,而不是一个完全不同且更容易的代码。如果我在这里做到这一点是因为我的思绪一直在思考这段代码,虽然我很欣赏一个有效的代码,但我真的很想知道我是不是太迷失了。
答案 0 :(得分:2)
也许不是那么简短,但是这会利用你在这里实际使用日期/时间值并且它们不像常规数字序列那样的事实
strftime(seq(
as.POSIXct("2014-01-01 9:20:00"),
as.POSIXct("2014-01-01 15:40:00"), by="20 min")
, "%H:%M")
# [1] "09:20" "09:40" "10:00" "10:20" "10:40" "11:00" "11:20" "11:40" "12:00"
# [10] "12:20" "12:40" "13:00" "13:20" "13:40" "14:00" "14:20" "14:40" "15:00"
# [19] "15:20" "15:40"