2017-02-21 11 views
-1

У меня есть таблица, где у меня есть числовой столбец целых положительных и отрицательных значений. Я пытаюсь запустить простой, если оператор, где, если значение ЯРД меньше 10, то новый числовой столбец (Ydsle10) получает 1 еще 0Простой, если оператор возвращает «условие имеет длину> 1» ошибка

Вот мой код:

Data$Ydslt10 <- if(Data$Yds < 10) {Data$Ydslt10 <- 1} else {Data$Ydslt10<-0} 

Здесь ошибка:

the condition has length > 1 and only the first element will be used 

ули мою таблицу:

$ Name  : Factor w/ 206 levels "A.Abdullah","A.Boldin",..: 68 199 79 120 120 79 68 27 68 150 ... 
$ Team  : Factor w/ 31 levels "ARI","BAL","BUF",..: 9 9 9 4 4 9 9 9 9 4 ... 
$ Position : Factor w/ 3 levels "RB","TE","WR": 3 2 3 3 3 3 3 1 3 1 ... 
$ Yds  : num 0 10 4 17 14 14 7 2 6 -3 ... 
$ Receptions: num 1 1 1 1 1 1 1 1 1 1 ... 
$ Targets : num 1 1 1 1 1 1 1 1 1 1 ... 
$ Ydslt10 : num 1 1 1 1 1 1 1 1 1 1 ... 
$ Ydsgt10 : num 0 0 0 0 0 0 0 0 0 0 ... 

Я не могу показаться, чтобы выяснить-е e и веб-поиски не были слишком полезными.

+1

ли вы на самом деле сделать поиск на «условия уже будет использоваться длина> 1 и только первый элемент»? Так много вопросов и ответов. –

+0

Второй результат в Google для меня - http://stackoverflow.com/questions/14170778/interpreting-condition-has-length-1-warning-from-if-function – thelatemail

+0

Честно говоря, это также ошибка рецензентов, которые в порядке Этот вопрос вместо того, чтобы помечать его как дубликат. Но да, обычно рекомендуется следовать этим рекомендациям при размещении вопроса: http://stackoverflow.com/help/how-to-ask –

ответ

3

Как показывает ошибка (это действительно предупреждение), if использует только первый элемент вектора для своего условия. Посмотрите на ifelse, который работает непосредственно на векторах и является более подходящим для вашей задачи:

Data$Ydslt10 <- ifelse(Data$Yds < 10, 1, 0) 
+0

Спасибо, это сработало! – CooperBuckeye05