r - 在 R 中处理嵌套列表
问题描述
每个$mu
都是 15 个数字的向量。如何计算 1000 中 15 个元素中每个元素的平均值$mu
?
我知道我可以访问$mu
's with hb.post.PT1$compdraw[[1]]$mu
,但是如何提取或循环它们以执行函数?
我一直在尝试这样的事情但没有成功:
lapply(hb.post.PT1$compdraw, function(x) lapply(hb.post.PT1$compdraw[[x]]$mu, function(x) mean))
抱歉,我无法发布示例列表数据。
解决方案
您已经使用第一个循环遍历每个列表元素lapply
。因此,根据您的结构,循环的每次迭代都将是 2 个元素(mu
和rooti
)的列表。所以你只需要一个lapply
:
ll <- list(list(mu = runif(15), root = runif(10)), list(mu = runif(15), runif(10)))
str(ll)
#List of 2
# $ :List of 2
# ..$ mu : num [1:15] 0.314 0.614 0.228 0.594 0.447 ...
# ..$ root: num [1:10] 0.73 0.496 0.266 0.599 0.917 ...
# $ :List of 2
# ..$ mu: num [1:15] 0.134 0.244 0.507 0.771 0.934 ...
# ..$ : num [1:10] 0.818 0.138 0.83 0.509 0.914 ...
lapply(ll, function(x) mean(x$mu))
#[[1]]
#[1] 0.4264001
#
#[[2]]
#[1] 0.4526724
推荐阅读
- python - 二维数组python的行之和
- javascript - JS - 如何验证字符串是否为数字
- javascript - 来自 HTML/Javascript onclick 的 PHP 会话不包含正确的值
- python - 在地图上放置坐标 - Python
- symfony4 - 主页问题上的 Symfony 语言环境
- jquery - 如何使用 Jquery 在引导程序中更改滚动字体颜色?
- imacros - 为什么不能使用以下代码下载验证码
- java - 如何使用循环从另一个 JFrame 为一堆 JButton 设置文本?
- c# - VS2017 C# 与 VB 创建事件
- android - 如何安装我的 Android APK 以便可以从我的 Android 桌面启动该应用程序?