R: Ошибка при записи переменных с использованием функции car :: recode - PullRequest
0 голосов
/ 27 июня 2018

Я часто использую функцию «перекодировать» в библиотеке (машине), чтобы перекодировать уровни в переменных. До сегодняшнего дня мой код работал нормально, но теперь он выдает ошибку. В df и т. Д. Ничего не изменилось, не уверен, что происходит.
Может быть, кто-то может просветить меня!

Мой Dataframe (образец) :

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 голосов
/ 27 июня 2018

Это работает в чистой сессии для меня. Я предполагаю, что 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(...)
...