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

R语言如何按带_ln替换规则的向量筛选数据框变量

你收到报错是因为across() 是dplyr中用于对多列值执行统一转换的函数,必须嵌套在mutate()、summarise()这类操作列数据的动词内部,你当前的需求是处理列名筛选对应列,不需要用到across()。


方案1:tidyverse风格(适配你现有代码习惯)

先批量处理筛选向量,移除所有末尾的_ln后缀,再直接选择对应列即可,支持上百个变量的自动化批量处理:

library(dplyr)
library(stringr)

# 批量处理列名,正则里的$表示仅匹配结尾的_ln,避免误伤变量名中间的_ln字符
target_cols <- str_remove(filter_vector, "_ln$")
# 用all_of包裹可以在列名不存在时输出更友好的报错提示
res <- df %>% select(all_of(target_cols))

方案2:Base R版本,无需额外加载包

# 用gsub批量处理列名
target_cols <- gsub("_ln$", "", filter_vector)
res <- df[, target_cols]

两种方案输出的结果都和你给出的预期结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:36:04