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

时间:2016-10-15 21:18:23

标签: r dplyr plyr

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

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"))

1 个答案:

答案 0 :(得分: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")))