You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在dplyr中如何实现变量反选,处理指定列时保留其余变量

现有代码中select(91:166)的作用是仅保留第91至166列,因此运行后会丢失其余所有变量。不需要单独做反选操作,直接使用mutate()配合across()修改指定列即可自动保留所有未涉及的原有变量。

正确实现代码如下:

library(dplyr)
library(sjmisc)

# 直接替换原有第91至166列为二分处理后的结果
dt_test <- dt %>%
  mutate(across(91:166, ~ dicho(.x, dich.by = 2)))

如果需要保留原始的第91至166列,给处理后的新列统一加后缀,可以调整参数:

# 新增二分处理后的列,列名后缀为_dich
dt_test <- dt %>%
  mutate(across(91:166, ~ dicho(.x, dich.by = 2), .names = "{.col}_dich"))

如果使用的是1.0版本以下的dplyr,也可以用mutate_at实现相同效果:

dt_test <- dt %>%
  mutate_at(vars(91:166), ~ dicho(.x, dich.by = 2))

内容的提问来源于stack exchange,提问作者David Potrel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 20:15:01