Включение нескольких условий в цикл for

#r #for-loop #conditional-statements

#r #для цикла #условные операторы

Вопрос:

Я пытаюсь указать два условия как часть цикла for. Похоже, что второе условие во втором цикле for не рассматривается. Мой код выполняется следующим образом:

 for (i in 1:nrow(mydata))          {
 for (j in 1:nrow(mydata) amp;amp; j!=i )    {
       Statements....
 }
 Statements...
 }
  

Не могли бы вы сказать мне, правильный ли это синтаксис в R?
Спасибо!

Ответ №1:

Чтобы ответить на ваш вопрос, вам нужно:

 for (i in 1:nrow(mydata)) {
   for (j in 1:nrow(mydata) ) {
       if(j != i) {
         Statements....
       }
    }
    Statements...
 }
  

Однако, вероятно, есть более приятный способ добиться того, что вы хотите сделать, но мне понадобилось бы больше деталей.

Ответ №2:

Это может помочь:

 for (i in seq(nrow(mydata)))
{
 for (j in seq(nrow(mydata))[-i])
 {
       Statements....
 }
 Statements...
}
  

Вы также можете взглянуть на ?combn или ?expand.grid в зависимости от вашей реальной цели.