R:使用car :: recode函数

时间:2018-06-27 15:51:07

标签: r data-manipulation recode r-car

我经常使用library(car)中的“ recode”功能来重新编码变量中的级别。直到今天,我的代码都可以正常工作,但是现在却使我出错。 df等没有任何变化,不确定发生了什么。
也许有人可以启发我!

我的数据框(示例)

test<-structure(list(Avg.Salary = c("65000", "395", "82000", "128357", 
"95785", "95785"), Education = c("Doctorate", "Professional Degree", 
"Bachelor's", "Professional Degree", "Master's", "Master's"), 
Count = c("D", "D", "D", "D", "D", "364584"), Year = c(2017, 
2017, 2017, 2017, 2017, 2017)), row.names = c("540061", "540071", 
"540081", "540091", "540102", "540112"), class = "data.frame")

我的实际数据集中的水平:-

    Associate Degree           Associates           Bachelor's 
             205                   35                42446 
               D            Doctorate          High School 
           42902                 9846                  191 
        Master's    Missing Education           No Diploma 
           57644                  218                   79 
    Professional  Professional Degree         Some College 
             431                 6791                   60 
 Some College Credits 
             370 

我的代码(到今天为止还正常!):-

# Recode the education levels
test$Education<-recode(test$Education,
                 "c('Associate Degree','Associates','D','High School',
                    'No Diploma','Missing Education',
                    'Professional','Professional Degree','Some College',
                    'Some College Credits')='Others'")

错误:-Error: Argument 2 must be named, not unnamed

1 个答案:

答案 0 :(得分:3)

它对我来说是干净的会话。我猜测car::recode()dplyr::recode()冲突。合格功能是否起作用?将recode替换为car::recode

test$Education <- car::recode(test$Education,
                 "c('Associate Degree','Associates','D','High School',
                    'No Diploma','Missing Education',
                    'Professional','Professional Degree','Some College',
                    'Some College Credits')='Others'")

当我显式调用dplyr::recode()时,出现错误“错误:参数2必须命名,而不是未命名”。

test$Education <- dplyr::recode(...)