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

在R语言中使用aggregate计算中位数后如何将data.frame转为array

解决方法

你可以直接从aggregate返回的data.frame中提取分组和对应计算结果,直接构造符合要求的array:

# 你的原始aggregate计算
df_median <- aggregate(mtcars$mpg ~ mtcars$gear, FUN=median) 

# 转换为array
my_array <- array(
  data = df_median[[2]],
  dim = nrow(df_median),
  dimnames = list(gear = df_median[[1]])
)

验证结果:

> class(my_array)
[1] "array"
> my_array
gear
   3    4    5 
15.5 22.8 19.7

和你用tapply得到的输出完全一致。
也可以用简化写法:

my_array <- as.array(setNames(df_median[[2]], df_median[[1]]))

原方法失败的原因

你之前的操作中,转置data.frame后得到的是单行数据框,调用simplify2array时会自动降维为普通numeric向量,丢失了array类型标识,才会出现不符合要求的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:18:01