如果语句循环仅应用第一个元素,则返回R [英] R if statement loop applied the first element only
本文介绍了如果语句循环仅应用第一个元素,则返回R的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个名为x的DF,其中包含2个变量,分别是小时和时间.
I have a DF named x contains 2 variables hour and timeofday.
我确实需要根据以下规则为timeofday变量提供4个不同的值:
I do need to give 4 different values to timeofday variable according to the following rules :
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"}
不幸的是,只有第一个规则午夜"适用于所有条件.
Unfortunately only the first rule "midnight" is applied to all conditions.
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
非常感谢您的支持,谢谢
Your support is much appreciated, Thank you
推荐答案
mtoto
也指出,ifelse
是矢量化的,而if
不是.因此,这将是您的解决方案:
As pointed out by mtoto
as well, ifelse
is vectorized while if
not. So this will be your solution:
x$timeofday<-ifelse(x$hour>=0 & x$hour<6,"midnight",
ifelse(x$hour>=6 & x$hour<12,"morning",
ifelse(x$hour>=12 & x$hour<18,"afternoon","night")))
这篇关于如果语句循环仅应用第一个元素,则返回R的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文