Генерируйте аргументы dplyr, используя значения в другом фрейме данных - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть данные, где метки факторов представлены в отдельных файлах.В результате, когда я читаю вещи, у меня есть данные, которые выглядят так:

id <- seq(1,10,1)
factor_x <- as.factor(sample(x = 1:7, size = 10, replace = T))
data <- data.frame(id, factor_x)

И отдельный фрейм данных, содержащий метки для factor_x, выглядит следующим образом:

code <- seq(1,7,1)
label <- letters[1:7]
factor_x_labels <- data.frame(code, label)
factor_x_labels$label <- as.character(factor_x_labels$label)

Я ищу эффективный способ обновления factor_x во фрейме данных «data» с метками во фрейме данных factor_x_labels.

Я пытался работать с fct_recode из пакета forcats или перекодировать из dplyr, но явозникают проблемы, потому что (например) существующие и обновленные метки должны быть вставлены как строки, но должны быть разделены символом = как символ.

1 Ответ

0 голосов
/ 21 декабря 2018

@ Комментарий Ронака, очевидно, работает (и, возможно, должен быть ответом), но так как этот пост был помечен dplyr, я также публикую решение dplyr:

factor_x_labels$code <- as.character(factor_x_labels$code) #this won't work if one of "code" and "factor_x" is numeric but not the other
data %>% 
  left_join(factor_x_labels, by=c("factor_x"="code")) %>% 
  rename(factor_x_label = label)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...