【发布时间】:2016-04-09 10:45:55
【问题描述】:
我有一个名为 x 的 DF,其中包含 2 个变量 hour 和 timeofday。
我确实需要根据以下规则为 timeofday 变量提供 4 个不同的值:
if (x$hour>=0 & x$hour<6){x$timeofday<-"midnight"} else
if(x$hour>=6 & x$hour<12) {x$timeofday<-"morning"} else
if (x$hour>=12 & x$hour<18) {x$timeofday<-"afternoon"} else
{x$timeofday<-"night"}
很遗憾,只有第一条规则“午夜”适用于所有条件。
timeofday hour
1 midnight 0
2 midnight 1
3 midnight 2
4 midnight 3
5 midnight 4
6 midnight 5
7 midnight 6
8 midnight 7
9 midnight 8
10 midnight 9
11 midnight 10
12 midnight 11
13 midnight 12
14 midnight 13
15 midnight 14
16 midnight 15
17 midnight 16
18 midnight 17
19 midnight 18
20 midnight 19
21 midnight 20
22 midnight 21
23 midnight 22
24 midnight 23
25 midnight 0
26 midnight 1
27 midnight 2
28 midnight 3
29 midnight 4
30 midnight 6
非常感谢您的支持,谢谢
【问题讨论】:
-
试试
ifelse()它是矢量化的。 -
@mtoto :我试过 ifelse() 然后我只应用了最后一条规则,即“晚上” ifelse(x$hour>=0 & x$hour=6 & x$hour=12 & x$hour
-
您的通话中有错字,请参阅正确语法的解决方案。
-
我想你想看看
?cut-cut(0:23, breaks=c(0,6,12,18,24), include.lowest=TRUE, labels=c("midn","morn","after","night")
标签: r if-statement