R заменить значения переменных - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь изменить значения переменных в наборе данных WVS из пакета carData, но у меня есть ошибка:

Error in `$<-.data.frame`(`*tmp*`, religion, value = c(2L, 2L, 2L, 2L,  : 
  replacement has 5383 rows, data has 5381
In addition: Warning message:
In `[<-.factor`(`*tmp*`, c("yes", "no"), value = c(2L, 2L, 2L, 2L,  :
  invalid factor level, NA generated

Религия является фактор-переменной, и она все равно должна оставаться фактором.

Это мое код

data(WVS) 
head(WVS)
WVS$religion[c("yes","no")] <- c("oui", "non")

1 Ответ

1 голос
/ 04 мая 2020

Вы можете сделать это с помощью dplyr:

library(dplyr)
WVS  <- WVS %>% mutate(religion = if_else("yes","oui","non"))

Если ваша переменная может иметь больше опций, которые вы не хотите связывать, вы можете использовать case_when:

WVS  <- WVS %>%
   mutate(religion = case_when(religion == "yes" ~ "oui",
                               religion == "no" ~ "non",
                               TRUE ~ religion))

Редактировать

Вы можете использовать перекодировать с факторными переменными

WVS  <- WVS %>%
   mutate(religion = recode(religion, 
                            yes = "oui",
                            no = "non"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...