使用dplyr在数据操作中使用重估值

问题描述 投票:1回答:1

我想使用以下代码,但它不工作,我不明白为什么?:

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个回答
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")))
© www.soinside.com 2019 - 2024. All rights reserved.