变异(跨越())有两个条件

mutate(across()) with two conditions

我想将 chr 列变异为因子,但排除前 15 列(其中一些是 chr)。我似乎只能用 mutate(across(where(is.character))...mutate(across(.cols = -c(1:15))... 来改变一切。此外,我想将更改保存到数据集 (%<>%) 中,所以我不能先 select 出 1:15。例如,你会如何 starwars%<>% mutate_if(is.character, as.factor) 但不包括 name.

我们可以使用

library(dplyr)
library(magrittr)
starwars %<>%
    mutate(across(c(where(is.character),-(1:5)), factor))