【问题标题】:Find the the mean of several indexed lists at index values in R在 R 中的索引值处找到多个索引列表的平均值
【发布时间】:2022-12-10 13:41:46
【问题描述】:

我有 4 个预测的 y 值在 R 中显示为索引列表:

> y_a
       2       12       15       19       20       22        3        4 
26.05434 24.33894 38.57935 37.94003 23.87608 46.20327 18.43043 24.96521 
       5        8       13       21        1        7       10       11 
17.34129 30.41087 28.49836 39.02917 21.96358 30.41087 23.61032 30.41087 
      16       18 
35.31196 35.85652 
> y_b
       6        9       14       17       23       24        3        4 
36.87726 35.30301 40.48044 38.24398 42.67726 41.31053 32.32106 33.81204 
       5        8       13       21        1        7       10       11 
32.07257 35.05451 40.31655 44.74850 38.82558 35.05451 27.80451 35.05451 
      16       18 
36.17274 36.29699 
> y_c
       6        9       14       17       23       24        2       12 
30.24043 35.33617 39.18723 33.63404 42.76170 39.36809 32.25106 24.04894 
      15       19       20       22        1        7       10       11 
39.34681 38.28298 31.01702 43.66596 33.19787 34.71915 27.60213 34.71915 
      16       18 
37.49574 37.80426 
> y_d
       6        9       14       17       23       24        2       12 
26.48159 35.12368 38.41591 31.00840 40.54660 36.01979 31.00840 22.70478 
      15       19       20       22        3        4        5        8 
40.47355 32.72757 29.36229 46.23494 25.24701 30.18534 24.42395 34.30063 
      13       21 
32.72757 33.55063 

我想创建一个列表,该列表返回同一索引处每个列表上的点的平均值。换句话说,索引 2、索引 12、索引 15 等处的点的平均值...

> y_mean
       2       6       9       12....     
26.05434  31.8664  ......      ......

关于如何做到这一点的任何想法?

【问题讨论】:

  • 请分享此类列表的可重现示例。 (您似乎显示了 4 个向量,而不是列表?)也许使用 purrrmap_dbl(transpose(your_list), mean)

标签: r list


【解决方案1】:

我们可以获取list中的元素,然后stack将其添加到两列data.frame,rbind并通过mean进行分组

dat <- do.call(rbind, 
     lapply(mget(ls(pattern = "^y_[a-z]$")), stack))
aggregate(values ~ ind, dat, FUN = mean)

或者使用tapply

with(dat, tapply(values, ind, FUN = mean))

【讨论】:

    猜你喜欢
    • 2016-08-23
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    相关资源
    最近更新 更多