我试图从carData包更改WVS数据集中的变量值,但我有一个错误:
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")
您可以使用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))
编辑
您可以将recode与因子变量一起使用
WVS <- WVS %>%
mutate(religion = recode(religion,
yes = "oui",
no = "non"))