【发布时间】:2018-02-12 14:07:44
【问题描述】:
有多个包含多个数据框的列表。所有数据框都有相同的两个列名,但长度不同。
一个简单的例子是:
d1 <- data.frame(y1 = c(1:5), y2 = 3)
d2 <- data.frame(y1 = c(6:13), y2 = 1)
d3 <- data.frame(y1 = c(13:21), y2 = 2)
df_list <- list(d3, d1, d2)
现在我正在寻找一种解决方案来计算列表中每个数据帧中 y1 列的平均值,然后从 y1 列的平均值最低的那个开始更改数据帧的顺序。
到目前为止,我能够通过以下方式计算均值:
lapply(df_list, function(x) mean(x[,1]))
但我不知道如何将它与order() 结合起来
df_list <- df_list[order(lapply(df_list, function(x) mean(x[,1])))]
给我
"顺序错误(lapply(df_list, function(x) mean(x[, 1]))) :
'orderVector1' 中未实现的类型 'list'"
感谢您的帮助!
【问题讨论】:
-
将
lapply(...)更改为sapply(...)
标签: r