这是我在这里的第一个问题,我对R和编程很陌生,所以可能会是一个显而易见的问题。 我有一个data.frame,其中包含“ DateTime”列,“ Night_Starts”列和“ Night_Ends”列,所有格式均为“ YYYY-MM-DD hh:mm:ss”。所有这些都是因素。 看起来像这样:
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”的第四列,如果“ DateTime”在“ NightStarts”和“ NightEnds”之间,并且在“ DAY”之间,则我希望在其中具有“ NIGHT”。 如果我编码
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
很明显,第三行应为“ NIGHT”。我知道这是一个愚蠢的问题,可能会有一个简单的答案,但现在我找不到它。