Способ работы 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
}