r - 使用“across”更改 dplyr 中的多个列
问题描述
我有 100 列都是数字的。第一列是一个 ID 号,需要保持数字,我需要将其他列更改为因子。我一直在尝试使用 new(ish)across
函数dplyr
来执行此操作,但我无法将该函数成功应用于除第一个列之外的所有列。根据我的阅读,我应该能够做到以下几点:
df %>% mutate(across(everything(!c(ID)), as.factor))
但这会产生错误:“不能对不存在的列进行子集化。位置 101、102 等不存在。” 我究竟做错了什么?
解决方案
代替!
中everything
的-
否定!
(everything
library(dplyr)
df <- df %>%
mutate(across(-ID, factor))
如果有不止一列,将其包裹在里面c
df <- df %>%
mutate(across(-c(ID, ID2), factor))
推荐阅读
- javascript - 测试下载的 PDF 文件中的内容
- react-native-firebase - react-native-firebase scheduleNotification
- c++ - 在复制初始化中是否返回对本地对象未定义行为的引用?
- sql - 带有 OR 语句的 JOIN 语句
- r - 更改 R ggplot2 中的单个色点
- jboss - 复制槽已经存在
- javascript - NextJS 在 MDX 中导入图像
- c++ - 访问数组中所有结构的成员
- corda - Corda Don't Know About Party - 公证人
- hybris - 在 Hybris 中使用正确的拦截器逻辑