Лестница, если еще с несколькими утверждениями в каждом - PullRequest
0 голосов
/ 12 ноября 2018

Я хочу сделать эту лестницу, если еще с несколькими операторами в каждом условии, однако, он приводит к двум следующим ошибкам: 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 голосов
/ 12 ноября 2018

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

}
0 голосов
/ 12 ноября 2018

Это работает, и первый не работал, потому что 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 
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...