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

在R语言中基于列名数值调整数据框列顺序的实现方法

按列名数值排序数据框列的解决方案

针对你的需求,我们可以通过以下两种方式实现:

方法1:基础R原生实现

无需额外安装包,直接通过列名处理和排序完成:

# 提取需要排序的目标列名(排除id和raw_score)
target_cols <- setdiff(names(df), c("id", "raw_score"))
# 将列名转为数值类型后排序
sorted_target_cols <- target_cols[order(as.numeric(target_cols))]
# 重新构造排序后的数据框
df_sorted <- df[, c("id", "raw_score", sorted_target_cols)]

# 查看结果
df_sorted

执行后输出:

id raw_score 2.1 2.2 2.3
1  1        10   4   1   2
2  2        20   6   1   3
3  3        30   7   1   4

方法2:tidyverse/dplyr风格实现

如果你常用tidyverse工具链,可以用更简洁的管道语法完成:

library(dplyr)

df_sorted <- df %>%
  select(id, raw_score, sort(setdiff(names(.), c("id", "raw_score"))))

这段代码会直接返回排序后的结果,和方法1效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 12:15:34