首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据类变量转换一个变量

根据类变量转换一个变量
EN

Stack Overflow用户
提问于 2019-04-15 07:55:33
回答 1查看 26关注 0票数 1

我有一个我想要操纵的数据集。这需要我根据类cartype变量的值1和2来转换属性的值,但是我似乎不能正常工作。

好吧,我写了一些代码,但它给了我一个错误:无效的因子水平,NA生成。

代码语言:javascript
复制
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“作为警告。

EN

回答 1

Stack Overflow用户

发布于 2019-04-15 09:27:04

以下是使用dplyr语法(使用mtcars数据)的几个选项:

代码语言:javascript
复制
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_))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55681082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档