我有一个我想要操纵的数据集。这需要我根据类cartype变量的值1和2来转换属性的值,但是我似乎不能正常工作。
好吧,我写了一些代码,但它给了我一个错误:无效的因子水平,NA生成。
for( i in 1:30) {
if(mydata$cartype[i] == 1) {
mydata$wheeltype[i] = 1
}
else {
mydata$wheeltype[i] = 0
}
}我在这里期望的是,如果cartype为1,则轮型属性将被转换为1,而如果cartype为2,则将轮型属性设置为0。我当前的输出将轮型属性更改为NA。使用"invalid factor level,NA generated“作为警告。
发布于 2019-04-15 09:27:04
以下是使用dplyr语法(使用mtcars数据)的几个选项:
library(dplyr)
data("mtcars")
# ifelse
mtcars %>%
as_tibble(rownames = "model") %>%
mutate(wheeltype = ifelse(cyl == 6, 1, 0))
# case_when
mtcars %>%
as_tibble(rownames = "model") %>%
mutate(wheeltype = case_when(cyl == 6 ~ 1,
cyl == 4 ~ 2,
cyl == 8 ~ 3,
T ~ NA_real_))https://stackoverflow.com/questions/55681082
复制相似问题