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

R语言如何重排数据框列使相似名称列相邻并添加分隔空列

解决方案

以下是基于Base R的实现,不需要额外安装依赖包:

# 按前缀筛选并列名按后缀序号排序
live_cols <- sort(grep("^live\\.", names(df), value = TRUE))
dead_cols <- sort(grep("^dead\\.", names(df), value = TRUE))
total_cols <- sort(grep("^total\\.", names(df), value = TRUE))

# 插入两个分隔空列,默认填充NA,可按需修改为其他值
df$sep1 <- NA
df$sep2 <- NA

# 自定义列顺序重组数据框
df_final <- df[, c(live_cols, "sep1", dead_cols, "sep2", total_cols)]

# 可选:将分隔列的列名改为空,视觉上更像分隔符
names(df_final)[names(df_final) %in% c("sep1", "sep2")] <- ""

实现逻辑说明

  1. 用正则匹配^前缀\\.精准筛选对应分组的列,避免匹配到其他含相同字符的列
  2. sort()直接对列名字符串排序,默认就会按后缀数字从小到大排列,兼容后续序号扩展到多位数的场景
  3. 插入的空列可按需调整填充值,比如要填0就把NA改为0,要填空字符串就改为""
  4. 最后一步列顺序重组完全按照指定的分组规则,不会受原数据列顺序影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:45:09