来自这样的对象列表。我正在尝试估计列的平均值
x
[[1]]
ymin ymax x
42.34721 47.26508 0.125
43.85269 46.66316 0.375
[[2]]
ymin ymax x
42.47198 47.33008 0.125
43.89134 46.68878 0.375
[[3]]
ymin ymax x
42.48128 47.35456 0.125
43.89433 46.69511 0.375
我希望像这样估计平均值
ymin ymax x
(42.34721 + 42.47198 + 42.48128)/3 (47.26508 + 47.33008 + 47.35456)/3 0.125
(43.85269 + 43.89134 + 43.89433)/3 (46.66316 + 46.68878 + 46.69511)/3 0.375
例如,我尝试了几种选择
df <- do.call(rbind, listdf)
aggregate (df[1:2], df[3], mean)
listdf %>%
group_by(3) %>%
summarise_all(mean) %>%
as.data.frame()
aggregate(. ~ x, data = df, FUN=mean)
我没有从上述尝试中得到正确的答案。非常感谢任何关于我错误的地方的建议或建议。谢谢。
我们可以这样做(用
dplyr
):
library(dplyr)
list_of_dataframes <- list(
data.frame(
ymin = c(42.34721, 43.85269),
ymax = c(47.26508, 46.66316),
x = c(0.125, 0.375)
),
data.frame(
ymin = c(42.47198, 43.89134),
ymax = c(47.33008, 46.68878),
x = c(0.125, 0.375)
),
data.frame(
ymin = c(42.48128, 43.89433),
ymax = c(47.35456, 46.69511),
x = c(0.125, 0.375)
)
)
list_of_dataframes %>%
bind_rows() %>%
summarise(ymin_mean = mean(ymin), ymax_mean = mean(ymax), .by = x)
x ymin_mean ymax_mean
1 0.125 42.43349 47.31657
2 0.375 43.87945 46.68235