根据数据框将标签添加到因子

时间:2020-05-04 18:37:46

标签: r dplyr

我有一个带有数字数据的数据框,如下所示:

data <- data.frame(q1=c("2", "1", "3"),
                   q2=c("1", "3", "2"),
                   other=c("other", "other", "other"))

我想将该数据视为因素,并在该数据上添加因素标签。我仍然希望看到数值数据,以便执行数学功能,但要查看ggplot中的标签,等等。因子标签位于另一个数据框中,如下所示:

factors <- data.frame(variable=c("q1", "q1", "q1", "q2", "q2", "q2"),
                      level=c(1,2,3,1,2,3),
                      labels=c("A", "B", "C", "X", "Y", "Z"))

如何使用factors df向data df添加标签?

我已经尝试过了,但是没用:

labelled <- data %>%
  mutate_at(.vars = vars(starts_with("q")),
            .funs = funs((., 
                                labels=factors$labels
                                )))

我确定有一些我不考虑的简单方法。 任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

一种选择是用imap遍历'q'列,根据列名从'factors'数据集中子集'level'和'labels'列,并在{{ 1}}

factor