R if оператор с условием> 1 ошибка длины - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь выполнить оператор if, где я хочу запустить что-то, ЕСЛИ любое из 23 значений ниже определенного значения.

   test.df<-as.data.frame(c(1:50))
   if (test.df[,c(27:50)] <30){ print("hi")}

Я получаю ошибку, что условие имеет длину> 1, и будет использоваться только первый элемент. Что верно ... Кто-нибудь знает, как я могу проверить это, если утверждение для 23 значений, без необходимости вводить их одно за другим?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

См. Функции all или any, isTRUE и в более новых версиях R, isFALSE, где последние два в некоторой степени заботятся о дополнительных случаях NULL с и NA с .

Для вашего примера:

if (all(test.df[,c(27:50)] <30)) { 
  print("hi")
}
0 голосов
/ 28 августа 2018

Вы можете попробовать это:

 if (any(test.df[,c(27:50)] <30)){ print("hi")}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...