2015-05-27 3 views
-3

У меня есть таблица, в которой я хотел удалить строки, которые имеют «NA» в одном из столбцов, и в конечном итоге с новым набором данных, который будет содержать только строки с числовым вводом (в моем случае больше нуля). Я использовал dplyr упаковка. Мой исходный код был:Ошибка: неожиданный '='

newdataset<-filter(dataset, columnName !== NA) 

Это дало мне следующую ошибку:

unexpected '=' in "newdataset<-filter(dataset, columnName !=="

я в конце концов достигнута задача по: newdataset<-filter(dataset, columnName >=0). Но не могли бы вы указать мне на ошибку в моем первом коде? Благодарю.

+3

'! =' Вместо этого может работать. –

+4

Обратите внимание, что '! (Columname == NA)' эквивалентно 'columnname! = NA', но ** ни один из них ** не делает то, что вы хотите. Вместо этого посмотрите на функцию 'is.na'. Сравнения равенства с 'NA' недействительны в R. – Frank

ответ

3

is.na рекомендуется для тестирования NA -ness.

newdataset<-filter(dataset, !is.na(columnName)) 

В комментарии и другие ответы указывают, !== не действует синтаксис, вы хотите !=. Но для тестирования NA -ness, is.na обычно лучше, потому что он вернет FALSE на NA, а не NA на NA.

0
x <- 1:4 
x !== 2 
Error: unexpected '=' in "x !==" 
x != 2 
[1] TRUE FALSE TRUE TRUE 
Смежные вопросы