使用 forcats 将数字列更改为因子

Change numeric column to factor with forcats

在我不断寻求理解 tidyverse 的过程中,有人可以帮助我吗?

library(tidyverse)
foo <- tibble(x = 1:10, y = rep(1:2,5))
# why does this not work?
foo %>% as_factor(y)

我想将 foo$y 从数字更改为因数。在 base R 中,我会做 foo$y <- as.factor(foo$y) 并完成它。我认为 foo %>% as_factor(y) 是简洁的方式来做到这一点,但事实并非如此。实现它的最佳方法是什么?

我们可以pull将列作为向量并应用

library(dplyr)
foo %>%
    pull(y) %>%
    as_factor

或者利用tidyverse函数进行转换

foo <- foo %>%
          mutate(y = as_factor(y))