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

R语言如何按列名模式批量生成重复的dataframe列?

R语言按列名模式批量复制列的高效实现

针对大尺寸dataframe场景,优先使用向量化操作实现,避免低效的显式循环,两种常用实现方案如下:

方案1:Base R 原生实现(无额外依赖,性能最优)

先筛选匹配指定模式的列,再批量赋值生成新列:

# 示例数据
df <- data.frame(x001 = c(1,2,3), x002 = c(3,4,5), x003 = c(6,7,8), 
                 soccer = c(700,600,300), volley = c(30,22,29))

# 筛选所有x00开头的列名
cols_to_copy <- grep("^x00", names(df), value = TRUE)
# 批量复制生成带no2后缀的新列
df[paste0(cols_to_copy, "no2")] <- df[cols_to_copy]

方案2:dplyr 实现(适合tidyverse技术栈,代码可读性高)

使用across批量处理匹配列:

library(dplyr)

df <- df %>%
  mutate(across(starts_with("x00"), ~.x, .names = "{col}no2"))

两种方案均基于向量化运算,无需逐列迭代,内存操作效率高,适配大体积dataframe的处理需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:36:02