При попытке перекодировать мои данные я продолжаю сталкиваться с ошибкой: аргумент 2 должен быть назван, а не безымянный - PullRequest
0 голосов
/ 23 апреля 2020

Я довольно плохо знаком с R и продолжаю сталкиваться с сообщениями об ошибках. Обычно мне может помочь некоторое терпение и поиск в Google, но сейчас я в растерянности.

Вчера я создал скрипт, в котором я перекодирую некоторые факторные данные, чтобы иметь только 3 региона вместо 18 стран (это является частью задания курса). Вчера это работало великолепно, но сегодня я хотел продолжить и получить следующую ошибку:

Ошибка: Аргумент 2 должен быть назван, а не безымянный

Код, который я запускаю:

data$regions <- recode(data$country, "c('China','Japan')='Asia'; c('United States')='North America';else='Europe'", as.factor = T)

и у меня 18 стран, а набор данных включает более 6000 наблюдений.

Буду признателен за любую помощь!

Ответы [ 2 ]

1 голос
/ 23 апреля 2020

При выводе @ H1 вы хотите использовать

car::recode(data$region, "c('China','Japan')='Asia'; c('United States')='North America';else='Europe'", as.factor = T)

Так почему же ошибка?

recode()

Поскольку функция существует в нескольких пакетах с разными аргументами.

dplyr::recode()

car::recode()
...

Таким образом, вы всегда должны быть более точными, какие библиотеки вы загрузили и какую функцию вы действительно хотите использовать.

0 голосов
/ 23 апреля 2020

Для этого есть различные способы.

Для начала вы можете просто использовать dplyr :: case_when

data$regions <- with(data, dplyr::case_when(country %in% c('China','Japan') ~ 'Asia',
                                            country == 'United States' ~ 'North America',
                                            TRUE ~ 'Europe')
...