【问题标题】:Use revalue in data manipulation with dplyr使用 dplyr 在数据操作中使用 revalue
【发布时间】:2016-10-15 21:18:23
【问题描述】:

我想使用以下代码,但它不起作用,我不知道为什么?:

data <- data.frame(variable1 = as.factor(rep(c("A","B","C"), each=5)),
                   variable2 = rnorm(15,10,2))

require(plyr)
require(dplyr)

data <- data %>%
 revalue(variable1, c("A"="House", "B"="Flat", "C"="Loft"))

【问题讨论】:

    标签: r dplyr plyr


    【解决方案1】:

    问题在于variable1 不是因子或字符向量。它是数据框中列的“名称”。 revalue 函数需要因子或字符向量。您可以通过使用mutate() 函数来消除此问题,如下所示:

    # your code    
    data <- data.frame(variable1 = as.factor(rep(c("A","B","C"), each=5)),
                       variable2 = rnorm(15,10,2))
    
    require(plyr)
    require(dplyr)
    
    # corrected code
    data <- 
        data %>%
            mutate(variable1 = revalue(variable1, c("A"="House", "B"="Flat", "C"="Loft")))
    

    【讨论】:

    • 这里要提一下,在dplyr之前加载plyr很重要。
    • 感谢您的回答!我在其他地方读到,有可能在没有 plyr 包的情况下使用 recode() 来做同样的事情,但是 recode 似乎是 car 包中的一个函数。
    猜你喜欢
    • 2014-05-31
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2019-12-14
    • 2014-02-20
    • 2014-06-08
    • 2021-05-14
    • 2020-10-01
    相关资源
    最近更新 更多