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

如何在R语言中将数据框按列最值整理为目标格式的新数据框?

解决方法

你已经成功获取了各列的最值,接下来可以用以下几种方式整理成目标格式的数据框:

方法一:基于你已有的计算结果(基础R)

你已经得到了df_min和df_max两个向量,直接用rbind()合并后转为数据框,再设置行名即可:

# 你已有的代码
sample<-c("A", "B", "C", "D")
x<-c(1,2,7,1)
y<-c(1,5,4,2)
df <- data.frame(sample,x,y)

df_min <- apply(df[, c(2,3)], 2, FUN = min, na.rm = TRUE)
df_max <- apply(df[, c(2,3)], 2, FUN = max, na.rm = TRUE)

# 整理成目标格式
result_df <- data.frame(rbind(df_min, df_max))
rownames(result_df) <- c("min", "max")

# 查看结果
print(result_df)

运行后会输出:

x y
min 1 1
max 7 5

方法二:一步完成计算与整理(基础R)

可以直接用sapply()计算最值,再转置并设置行名,省去单独计算min和max的步骤:

result_df <- t(sapply(df[, c(2,3)], function(col) c(min = min(col), max = max(col))))
result_df <- as.data.frame(result_df)
print(result_df)

方法三:使用dplyr包(tidyverse风格)

如果你习惯用tidyverse工具链,可以用dplyr的函数一步生成:

library(dplyr)

result_df <- df %>%
  select(x, y) %>%  # 只保留需要计算的列
  summarise(across(everything(), list(min = min, max = max))) %>%  # 计算每列的min和max
  t() %>%  # 转置数据
  as.data.frame() %>%
  rownames_to_column() %>%
  separate(rowname, into = c("var", "stat"), sep = "_") %>%  # 拆分行名
  pivot_wider(names_from = var, values_from = V1) %>%  # 重塑为宽格式
  column_to_rownames("stat")  # 设置行名为min/max

print(result_df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 04:50:23