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

R语言如何按行最大绝对值对data.frame数据框的行进行排序

R按行最大绝对值排序实现方案

你提供的原始数据框中各列混合了字符串与数值类型,需要先将所有列统一转换为数值类型,才能正确计算绝对值完成排序。

# 原始数据构造
a <- c("5", 7, 9, "11")
b <- c("-8", "-10", -3, -1)
c <- c(-4, -1, "-6", "3")
df <- data.frame(a,b,c)

# 统一转换所有列为数值类型
df[] <- lapply(df, function(x) as.numeric(as.character(x)))

基础R实现

# 计算每行最大绝对值,按该值降序排序
df_sorted <- df[order(-apply(df, 1, function(row) max(abs(row)))), ]

dplyr 实现(适合tidy语法场景)

library(dplyr)

df_sorted <- df %>%
  rowwise() %>%
  mutate(max_abs = max(abs(c_across(everything())))) %>%
  arrange(desc(max_abs)) %>%
  select(-max_abs)

输出结果

a   b  c
4 11  -1  3
2  7 -10 -1
3  9  -3 -6
1  5  -8 -4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:57:04