R - функция ifelse с датой и временем - PullRequest
0 голосов
/ 15 февраля 2019

это мой первый вопрос здесь, и я довольно плохо знаком с 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 

Когда ясно, что третий ряд должен быть "НОЧЬ".Я знаю, что это глупый вопрос, и, вероятно, есть простой ответ, но сейчас я не могу его найти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...