У меня есть набор данных, в котором некоторые пропущенные значения закодированы как -99, и я попытался использовать функцию naniar replace_with_na_all, чтобы заменить эти значения на NA. Функция делает это, но, похоже, она также конвертирует мои факторные переменные в целые числа, теряя тем самым имя факторов.
Это происходит независимо от того, имеет ли сам фактор какие-либо истинные (NA) недостающие значения или нет, чтоВы можете видеть в примере ниже (в tibble1 фактор имеет пропущенное значение с самого начала, в tibble2 это не так).
library(tidyverse)
library(naniar)
# Example factor with missing values
tibble1 <- tribble(
~x, ~y,
"a", 1,
-99, 2,
"c", -99
)
tibble1$x <- as.factor(tibble1$x)
levels(tibble1$x) <- list("A" = "a",
"C" = "c")
# Showing original tibble and then after replace_with_na_all is used
tibble1
tibble1 %>% naniar::replace_with_na_all(condition = ~.x == -99)
# Example factor without missing values
tibble2 <- tribble(
~x, ~y,
"a", 1,
"b", 2,
"c", -99
)
tibble2$x <- as.factor(tibble2$x)
levels(tibble2$x) <- list("A" = "a",
"B" = "b",
"C" = "c")
# Showing original tibble and then after replace_with_na_all is used
tibble2
tibble2 %>% naniar::replace_with_na_all(condition = ~.x == -99)
Нет сообщения об ошибке, я просто не ожидал такого поведения ине может найти причину этого (или способ обойти это) в документации. Это ошибка? Функция?
Справка.