Заменить NA неизвестным - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь заменить NA's столбца GENDER_M из objeto1 кадра данных.

Ничего из следующего не работает:

replace_na(objeto1$GENDER_M, "unknown")

mutate(GENDER_M = replace_na(GENDER_M, "unknown"))

mutate(objeto1, GENDER_M = ifelse(is.na(GENDER_M), "unknown", GENDER_M))

replace(is.na(GENDER_M), "unknown")

Да, у меня естьпрочитайте эту страницу и дюжину других.

Может кто-нибудь помочь?

Спасибо!

1 Ответ

3 голосов
/ 30 апреля 2019

Все функции tidyverse возвращают измененный фрейм данных, они не изменяют его на месте, поэтому вам необходимо присвоить значение при его возврате. Если мы сделаем пример dataframe:

df <- structure(list(mpg = c(21, 21, 22.8, 21.4, NA, NA), cyl = c(6, 
6, 4, 6, 8, 6)), class = "data.frame", row.names = c(NA, -6L))

   mpg cyl
1 21.0   6
2 21.0   6
3 22.8   4
4 21.4   6
5   NA   8
6   NA   6

Мы можем заменить NA несколькими способами:

df <- df %>%
    replace_na(list(mpg = 'unknown'))

df <- df %>%
    mutate(mpg = ifelse(is.na(mpg), 'unknown', mpg))

Оба из которых возвращают одно и то же:

df
      mpg cyl
1      21   6
2      21   6
3    22.8   4
4    21.4   6
5 unknown   8
6 unknown   6

Вы также можете использовать базу R:

df[is.na(df)] <- 'unknown'

Осторожно: существует риск для этого: каждая переменная во фрейме данных может иметь только один тип (т. Е. numeric, logical, character). Добавление значений character к этим переменным приведет к преобразованию всей переменной в character, что может вызвать проблемы при попытке выполнить численные вычисления в будущем. Вот почему специальное значение NA настоятельно предпочтительнее других значений для идентификации отсутствующих данных.

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