это мой первый вопрос здесь, и я довольно плохо знаком с R и программированием, так что, вероятно, это будет очевидный вопрос.У меня есть data.frame со столбцом «DateTime», столбцом «Night_Starts» и столбцом «Night_Ends», все они в формате «ГГГГ-ММ-ДД чч: мм: сс».Все они являются факторами.Выглядит это так:
DateTime Night_starts Night_ends
2018-01-31 01:52:32 2018-01-31 22:22:19 2018-01-31 04:30:08
2018-02-02 03:24:28 2018-02-02 22:19:14 2018-02-02 04:33:47
2018-02-03 08:29:52 2018-02-03 22:17:40 2018-02-03 04:35:37
2018-03-16 21:45:23 2018-03-16 21:04:09 2018-03-16 05:38:54
Я хотел бы создать четвертый столбец с именем «Day_or_night», где я хочу иметь «NIGHT», если «DateTime» находится между «NightStarts» и «NightEnds» и «DAY».«если это не так.Если я кодирую
mydata$Day_or_night<-ifelse(mydata$DateTime >= mydata$Night_Starts & mydata$DateTime <= mydata$Night_Ends,"NIGHT","DAY")
, очевидно, что я получаю сообщение
Warning messages:
1: In Ops.factor(mydata$DateTime, mydata$Night_Starts) :
‘>=’ not meaningful for factors
2: In Ops.factor(mydata$DateTime, mydata$Night_Ends) :
‘<=’ not meaningful for factors
Я пытался преобразовать коэффициенты в числовые или в символы, но это не работает, потому что результат выглядит так:
DateTime Night_starts Night_ends Day_or_night
2018-01-31 01:52:32 2018-01-31 22:22:19 2018-01-31 04:30:08 DAY
2018-02-02 03:24:28 2018-02-02 22:19:14 2018-02-02 04:33:47 DAY
2018-02-03 08:29:52 2018-02-03 22:17:40 2018-02-03 04:35:37 DAY
2018-03-16 21:45:23 2018-03-16 21:04:09 2018-03-16 05:38:54 DAY
Когда ясно, что третий ряд должен быть "НОЧЬ".Я знаю, что это глупый вопрос, и, вероятно, есть простой ответ, но сейчас я не могу его найти.