r - 如何在 R 中的 list() 上执行嵌套循环?
问题描述
假设我在 R 中有一个这样的列表:
> L
[[1]]
[1] 0.6876619 0.7847888 0.6377801 0.2078056 0.8981001
[[2]]
[1] 0.9358160 0.8905056 0.7715877 0.8648426 0.4915060
[[3]]
[1] 0.88095630 0.08010288 0.15140700 0.35400865 0.60317717
[[4]]
[1] 0.07436267 0.85873209 0.49881141 0.92363954 0.87208334
我想找到每对向量之间的相关系数,例如cor(L[[i]],L[[j]])
。有什么解决方案可以通过apply
家庭功能执行它吗?请把它作为一个一般问题的具体案例:如果我们需要在 R 中的 List() 上做一个三重嵌套循环怎么办?
解决方案
您可以嵌套lapply
调用:
lapply(L, function(x) lapply(L, function(y) cor(x,y))))
如果您想要更好地呈现结果,请将它们放入矩阵中:
L <- list(rnorm(10), rnorm(10), rnorm(10))
matrix(unlist(lapply(L,
function(x) lapply(L,
function(y) cor(x,y)))),
length(L))
#> [,1] [,2] [,3]
#> [1,] 1.0000000 -0.3880931 -0.4164212
#> [2,] -0.3880931 1.0000000 0.4158335
#> [3,] -0.4164212 0.4158335 1.0000000
由reprex 包于 2021-05-31 创建 (v2.0.0 )
推荐阅读
- android - 未找到反应本机模拟器
- javascript - 使用本地存储在 gatsby 构建中未更新图像源
- java - Javafx 项目有时会因警报而冻结
- java - 如何根据有效角色获取 keycloak 用户
- hadoop - hive-site.xml 中缺少 Hive Metastore 数据库详细信息
- machine-learning - 训练pytorch模型后如何丢弃分支
- apache-kafka - 我需要在 Azure Kafka for HD Insight 中哪里获取 Kafka Connect 分布式 jar 和插件?
- batch-file - ping 多个 IP 地址并写入文件
- r - 有没有办法在同一个 ggplot 上使用 2 个色标?
- postgresql - Heroku:在 postgres 上启用 MTLS ......失败了!未找到