梯子,如果每个梯子中都有多个语句

时间:2018-11-11 21:58:45

标签: r

如果每个条件中都包含多个语句,我想执行此阶梯,但是,它会遇到以下两个错误: Error: unexpected symbol in:Error: unexpected '}' in "}"。 似乎在每个条件中不可能有一个以上的语句,但事实并非如此。对吧?

if (condition 1){
  results[i,3] <- 1 
  results[i,4] <- 1 
} 
  else if (condition 2){
    results[i,1] <- 1 
    results[i,2] <- 1
  }
else 
  results[i,1:4] <- 0 

2 个答案:

答案 0 :(得分:2)

R的工作方式是:读取一行,对其进行迭代,并在可能的情况下执行,然后读取下一行

此代码段之后

if (condition 1){
  results[i,3] <- 1 
  results[i,4] <- 1 
} 

读取最后一行,R认为if主体已完成并执行它。 之后,它将读取else,并且无法将else放在带有if的上下文中(因为已经处理过)

您要做的是将else与花括号放在同一行,以便R知道在执行前需要进一步阅读。

if (condition 1){

  results[i,3] <- 1 
  results[i,4] <- 1 

} else if (condition 2){

    results[i,1] <- 1 
    results[i,2] <- 1

} else {

  results[i,1:4] <- 0

}

答案 1 :(得分:0)

这行得通,前一个行不通,因为else从新行开始,而不是在大括号结束后立即出现。

 if (condition 1){
      results[i,3] <- 1 
      results[i,4] <- 1
      } else if (condition 2){
        results[i,1] <- 1 
        results[i,2] <- 1
      } else {
          results[i,1:4] <- 0 
      }