【问题标题】:Mutate error when attempting to recode - object not found尝试重新编码时发生变异错误 - 找不到对象
【发布时间】:2020-12-24 17:38:27
【问题描述】:

我正在尝试将数据集中的性别变量更改为字符变量(即 1 = 男性、2 = 女性、3 = 其他)

我尝试运行的代码如下

bwdata6 <- bwdata6 %>% mutate(across(c(Gender),
~recode(.x, ‘1’ = male, ‘2’ = female, ‘3’ = other)))

我得到的错误信息如下。

Error: Problem with mutate() input ..1.
x object ‘male’ not found
i Input ..1 is across(c(Gender), ~recode(.x, 1= male,2= female,3 = other)).

这里出了什么问题?任何想法如何解决这个问题?

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    值可以引用

    library(dplyr)
    bwdata6 <- bwdata6 %>% 
               mutate(across(c(Gender), ~recode(.x, '1' = 'male', 
                        '2' = 'female', 
                    '3' = 'other')))
    

    作为一个可重现的例子

    v1 <- c(1, 2, 3, 1)
    recode(v1, '1'= male)
    

    list2(...) 中的错误:找不到对象“男性”

    带引号,

    recode(v1, '1'= 'male', '2' = 'female', '3' = 'other')
    #[1] "male"   "female" "other"  "male"  
    

    【讨论】:

    • 感谢您的评论,我需要在数据集中重新编码。因此代码... bwdata6 % mutate(across(c(Gender), ~recode(.x, '1' = male, '2' = female, '3' = other))) 为什么是我收到“未找到对象男性错误”?
    • @DrZaheer 我帖子中的第一段代码就是这样做的
    • @DrZaheer 如果您检查我和您的代码,malefemaleother 在您的代码中未引用,而在我发布的解决方案中引用
    • 啊,我现在明白了(我的错!)。让我试一试,看看会发生什么。
    猜你喜欢
    • 2019-04-18
    • 1970-01-01
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    相关资源
    最近更新 更多