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

R语言:排序数据框时如何同时重置行名?

排序数据框时同步重置行名的方法

当使用order()函数按列排序数据框时,默认会保留原行名编号。如果想在排序操作中直接将行名重置为连续的1、2、3,可参考以下几种方法:

方法1:用dplyr的arrange()自动重置

dplyr包的arrange()函数在排序后会自动重置行名,无需额外操作:

library(dplyr)
mydf <- data.frame(first_name=c("Arya", "Cersei", "Daeneris"), age= c(11, 32, 19))
mydf <- mydf %>% arrange(desc(age))
mydf

执行结果:

first_name age
1     Cersei  32
2   Daeneris  19
3       Arya  11

方法2:基础R中一步完成排序+重置行名

利用rownames<-函数的特性,把排序和行名重置合并为一行操作:

mydf <- data.frame(first_name=c("Arya", "Cersei", "Daeneris"), age= c(11, 32, 19))
mydf <- `rownames<-`(mydf[order(mydf$age, decreasing = T), ], NULL)
mydf

方法3:使用data.table包

data.table的排序操作默认会重置行名:

library(data.table)
mydf <- data.table(first_name=c("Arya", "Cersei", "Daeneris"), age= c(11, 32, 19))
mydf <- mydf[order(-age)]
mydf

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 10:34:57