我想我在处理数字输入时遇到了一个边缘情况chron::times
。
我正在尝试创建一个半小时一次的序列,并首先创建[0, 1)
足够好的工作间隔:
> as.character(times(seq(0, 47/48, 1/48)))
[1] "00:00:00" "00:30:00" "01:00:00" "01:30:00" "02:00:00" "02:30:00" "03:00:00" "03:30:00" "04:00:00" "04:30:00"
[11] "05:00:00" "05:30:00" "06:00:00" "06:30:00" "07:00:00" "07:30:00" "08:00:00" "08:30:00" "09:00:00" "09:30:00"
[21] "10:00:00" "10:30:00" "11:00:00" "11:30:00" "12:00:00" "12:30:00" "13:00:00" "13:30:00" "14:00:00" "14:30:00"
[31] "15:00:00" "15:30:00" "16:00:00" "16:30:00" "17:00:00" "17:30:00" "18:00:00" "18:30:00" "19:00:00" "19:30:00"
[41] "20:00:00" "20:30:00" "21:00:00" "21:30:00" "22:00:00" "22:30:00" "23:00:00" "23:30:00"
但是,当我尝试创建 的间隔时(0, 1]
,我得到了这个:
> as.character(times(seq(1/48, 1, 1/48)))
[1] "0.02083333" "0.04166667" "0.06250000" "0.08333333" "0.10416667" "0.12500000" "0.14583333" "0.16666667"
[9] "0.18750000" "0.20833333" "0.22916667" "0.25000000" "0.27083333" "0.29166667" "0.31250000" "0.33333333"
[17] "0.35416667" "0.37500000" "0.39583333" "0.41666667" "0.43750000" "0.45833333" "0.47916667" "0.50000000"
[25] "0.52083333" "0.54166667" "0.56250000" "0.58333333" "0.60416667" "0.62500000" "0.64583333" "0.66666667"
[33] "0.68750000" "0.70833333" "0.72916667" "0.75000000" "0.77083333" "0.79166667" "0.81250000" "0.83333333"
[41] "0.85416667" "0.87500000" "0.89583333" "0.91666667" "0.93750000" "0.95833333" "0.97916667" "1.00000000"
可能发生的事情的一些迹象是,当我这样做时times(seq(1/48, 1, 1/48))
(强调我的)times
认识到其中一个条目大于等于 1 并开始以天为单位计数:
> times(seq(1/48, 1, 1/48))
**Time in days:**
[1] 0.02083333 0.04166667 0.06250000 0.08333333 0.10416667 0.12500000 0.14583333 0.16666667 0.18750000 0.20833333
[11] 0.22916667 0.25000000 0.27083333 0.29166667 0.31250000 0.33333333 0.35416667 0.37500000 0.39583333 0.41666667
[21] 0.43750000 0.45833333 0.47916667 0.50000000 0.52083333 0.54166667 0.56250000 0.58333333 0.60416667 0.62500000
[31] 0.64583333 0.66666667 0.68750000 0.70833333 0.72916667 0.75000000 0.77083333 0.79166667 0.81250000 0.83333333
[41] 0.85416667 0.87500000 0.89583333 0.91666667 0.93750000 0.95833333 0.97916667 1.00000000
问题:基本上,我试图理解这个选择背后的逻辑。鉴于这些是times
,我预计 1 会映射到 24:00:00。我可以c(as.character(times(seq(1/48, 47/48, 1/48))), "24:00:00")
使用chron
.