首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用"across“更改dplyr中的多列

使用"across“更改dplyr中的多列
EN

Stack Overflow用户
提问于 2020-12-17 06:56:10
回答 1查看 102关注 0票数 1

我有100列都是数字的。第一列是ID号,它需要保持为数字,我需要将其他列更改为factor。我一直在尝试使用dplyr中新的(Ish) across函数来完成此任务,但我无法成功地将该函数应用于除第一列之外的所有列。根据我所读到的内容,我应该能够做到以下几点:

代码语言:javascript
复制
df %>% mutate(across(everything(!c(ID)), as.factor))

但这会产生错误:“无法子集不存在的列。位置101、102等不存在。”我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-17 07:12:45

我们只需要-,而不是everything中的negate (!),或者正如@27ϕ9提到的那样,!也可以在没有everything的情况下工作

代码语言:javascript
复制
library(dplyr)
df <- df %>%
     mutate(across(-ID, factor))

如果有多个列,则将其包装在c

代码语言:javascript
复制
df <- df %>%
        mutate(across(-c(ID, ID2), factor))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65332327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档