R:使用逻辑OR |的字符串字符向量到sprintf的时间间隔

时间:2014-12-12 18:10:34

标签: r string printf logic intervals

我正在尝试创建一个小时矢量,时间间隔为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"

但我知道我不能,但这不是一个数值。我想知道为什么没有办法解决这个问题,而不是一个完全不同且更容易的代码。如果我在这里做到这一点是因为我的思绪一直在思考这段代码,虽然我很欣赏一个有效的代码,但我真的很想知道我是不是太迷失了。

1 个答案:

答案 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"