根据date.time列创建新列并填充行值

时间:2018-07-02 16:40:28

标签: r lubridate

我试图找到一种解决方案,但在这里找不到解决方案。 我需要创建一个新列,并基于“ Date.Time”格式的列来标记该新列的每个行值。此Date.Time列跨几天,如果值介于某些date.time值之间,我想将新列值标记为Day 1。

Day_1_start <- ymd_hms ("2018-07-02 00:00:00"),
Day_1_end <- ymd_hms ("2018-07-03 00:00:00")
Day_2_start <- ymd_hms ("2018-07-04 00:00:00")
Day_2_end <- ymd_hms ("2018-07-05 00:00:00")

interval_1 <- interval (Day_1_start, Day_1_end)
interval_2 <- interval (Day2_start, Day_2_end)

如果Date.Time列中的值介于interval_1之间,则新列中的对应标签为Day 1,依此类推。

我尝试过:

for (i in 1:file$Date.Time) {
    if (file$Date.Time[i] == %within% interval_1) {
        file$Day <- 1
          }
      }

上面提到的代码不起作用,仅表示伪代码。 R社区成员会帮助我找到解决方案吗?

或者这是一个示例,其中第一列具有Date.Time,我想创建一个名为Group的第二列,其中在13:30和13:40之间的所有Date.Time将被标记为1,在13:40和13之间:50将被标记为2,依此类推。

Date.Time   Group
5/7/18 13:30    1
5/7/18 13:31    1
5/7/18 13:32    1
5/7/18 13:33    1
5/7/18 13:34    1
5/7/18 13:35    1
5/7/18 13:36    1
5/7/18 13:37    1
5/7/18 13:38    1
5/7/18 13:39    1
5/7/18 13:40    2
5/7/18 13:41    2
5/7/18 13:42    2
5/7/18 13:43    2
5/7/18 13:44    2
5/7/18 13:45    2
5/7/18 13:46    2
5/7/18 13:47    2
5/7/18 13:48    2
5/7/18 13:49    2
5/7/18 13:50    3
5/7/18 13:51    3
5/7/18 13:52    3
5/7/18 13:53    3
5/7/18 13:54    3
5/7/18 13:55    3
5/7/18 13:56    3
5/7/18 13:57    3
5/7/18 13:58    3
5/7/18 13:59    3

谢谢。

0 个答案:

没有答案