Создайте новый столбец и заполните значения строки на основе столбца date.time - PullRequest
0 голосов
/ 02 июля 2018

Я пытался найти решение, но не смог найти его здесь. Мне нужно создать новый столбец и пометить значения каждой строки этого нового столбца на основе столбца, который является форматом «Date.Time». Этот столбец Date.Time охватывает несколько дней, и я хочу пометить в новых значениях столбца как День 1, если значения находятся между определенными значениями date.time.

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 находится в интервале_1, соответствующая метка в новом столбце - День 1 и т. Д.

Я пытался:

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

Вышеупомянутый код не работает и является просто представлением псевдокода. Помогут ли мне участники сообщества R найти решение для этого?

Или это пример, где первый столбец имеет Date.Time, и я хочу создать второй столбец с именем Group, где все Date.Time между 13:30 и 13:40 будут помечены как 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

Спасибо.

...