R 多个ifelse语句

R 多个ifelse语句,r,if-statement,conditional-statements,R,If Statement,Conditional Statements,我试图根据条件语句为列赋值,但POSIXct格式似乎让我很反感。我有一列时间,并希望将它们分配给昼/夜/黎明/黄昏,如下所示: if(t40636$time>t40636$dawn.b&t40636$time<t40636$dawn.e){ t40636$time.periods=1 } else { if(t40636$time>t40636$mid.day.b&t40636$time<t40636$mid.day.e){ t40636$

我试图根据条件语句为列赋值,但POSIXct格式似乎让我很反感。我有一列时间,并希望将它们分配给昼/夜/黎明/黄昏,如下所示:

if(t40636$time>t40636$dawn.b&t40636$time<t40636$dawn.e){
  t40636$time.periods=1
} else {
  if(t40636$time>t40636$mid.day.b&t40636$time<t40636$mid.day.e){
    t40636$time.periods=2
  } else {
    if(t40636$time>t40636$dusk.b&t40636$time<t40636$dusk.e){
      t40636$time.periods=3
    } else {
      if(t40636$time>t40636$mid.night.b&t40636$time<t40636$mid.night.e){
        t40636$time.periods=4
        } else {
          t40636$time.periods=0
        }
    }
  }
}
ifelse产生的结果接近我想要的,但我不能用它做多个语句。如有任何建议,我们将不胜感激

t40636$time.periods=ifelse(t40636$time>t40636$dawn.b&t40636$time<t40636$dawn.e,1,0)
t40636$time.periods=ifelse(t40636$time>t40636$dawn.b&t40636$time修复我的多个if-else语句”的答案几乎总是“不要使用多个if-else结构”


R语言有一个非常好的
开关
功能,它的帮助页面有一些很好的例子。

我同意你的观点,但这应该是一个评论。@SeñorO不,我真的希望这是一个答案,尽管我应该花时间发布一些
开关的简单例子(x,'a','b','c')
开关也没有矢量化,这就是这里的问题所在。@blindJesse
矢量化(开关,my.dbase,…)
是一种解决方案。简单的循环是另一种解决方案。您的问题实际上是一种
修复我的代码
格式。与其让我们破译您的格式,不如提供一个简单的示例说明您正在做什么,然后寻求帮助。您没有收到警告消息吗?
警告消息:…该条件的长度>1,只有f第一个元素将被使用
?这是一个关于发生了什么的线索。也许您想要的是
ifelse
函数,而不是
if
语句。为什么不能执行多个
ifelse
语句?
t40636$time.periods=ifelse(t40636$time>t40636$dawn.b&t40636$time<t40636$dawn.e,1,0)