如果每个条件中都包含多个语句,我想执行此阶梯,但是,它会遇到以下两个错误:
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
答案 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
}