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

在R语言中如何对列名不同的dataframe列表按第三列降序排列

解决方法

你可以直接通过列位置而非列名指定排序字段,两种常用实现方案如下:

1. tidyverse 方案(适配arrange函数用法)

如果使用dplyr的arrange实现,搭配purrr遍历列表即可:

library(purrr)
library(dplyr)

# 假设你的dataframe列表名为df_list
sorted_df_list <- map(df_list, ~ .x %>% 
  # 直接指定第三列的位置排序,无需提前知道列名
  arrange(desc(across(3)))
)

如果使用的是旧版dplyr,不支持across语法,可以改用列名索引的写法:

sorted_df_list <- map(df_list, ~ .x %>% 
  arrange(desc(.data[[names(.x)[3]]]))
)

2. 基础R方案

无需加载第三方包也可以快速实现:

sorted_df_list <- lapply(df_list, function(x) {
  # 按第三列值的倒序重排行索引
  x[order(-x[,3]), ]
})

你给出的第三个dataframe运行后输出结果如下:

PROVINCE DISTRICT       10
5       11        6 90743.17
3       11        4 21119.15
4       11        5 12580.12
1       11        1   677.17
6       11        8   171.84
2       11        3   115.69

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:36:04