Странные результаты при удалении строк с отрицательными значениями - PullRequest
0 голосов
/ 05 апреля 2020

Я выполнял простое подмножество своих данных, когда пытался удалить все строки с отрицательным значением.

Пример кода:

df1 <- df1[df1$var2 >= 0,]

В моем текущем наборе данных это действие должно удалить четыре ряда Однако после выполнения строки не удаляются.

Как ни странно, следующий код оставляет только те четыре строки, которые должны быть удалены первым кодом:

 df1 <- df1[df1$var2 < 0,]

Я обнаружил, что использование subset(df1, var2 >= 0) работает и удаляет четыре строки, которые Я хочу удалить. Но я всегда думал, что первый код такой же, как при использовании subset()? Кто-нибудь знает, почему самый первый код не работает так, как я намереваюсь?

Изменить, включая некоторые данные из моего набора данных:

> dput(df1[1:10,215:220])
structure(list(KBUY_CER = c(3L, 0L, 0L, 0L, 0L, 3L, 2L, 0L, 3L, 
2L), KBUY_PRO = c(1L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 1L, 1L), KBUY_DEF = c(1L, 
0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L), THINK_SP = c(NA, 1L, NA, 
NA, NA, NA, NA, 1L, 1L, NA), dwifexp = c(NA, 0L, NA, NA, NA, 
NA, NA, 0L, 0L, NA), dwifdoll = c(NA, 1500L, NA, NA, NA, NA, 
NA, 600L, 600L, NA)), row.names = c("389", "390", "391", "392", 
"393", "394", "395", "396", "397", "398"), class = "data.frame")

Все столбцы, которые я выбрал данные на работе, как и предполагалось, только столбец 215 (KBUY_CER), кажется, имеет эту проблему.

Я только что обнаружил, что четыре строки, которые должны быть удалены, на самом деле не отрицательные, а значения NA, что объясняет, почему оба [ не удаляют эти строки из выделения. Но всегда ли subset() всегда удаляет NA значения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...