r - 如何在R中迭代生成一定数量的向量?
问题描述
我正在分析 PCA 数据。所以我必须比较 PC1 与 PC2、PC1 与 PC3 等。我想将这些 ggplot 对象存储到一个向量中。直到这里没有问题。我创建一个向量:
Myplot <- vector('list',NumberToBeInserted)
然后我可以运行一个 for 循环或一个 lapply。但是,假设在不久的将来,我需要分析 PC2 与 PC3(直到 PC2 与 PCn)或更一般的 PCn-1 与 PCn。因此,我需要生成大量这些向量,以便将 PC 比较存储在不同的集合中。假设我知道需要 5 个与我上面提出的向量相似的向量。如何创建一个返回这些向量的函数?这个问题有意义还是手动做更好?因为我想提高我的 RI 技能,所以我很好奇
解决方案
我不确定这是否是您要查找的内容,但假设我有一个包含 5 个复杂对象的列表(例如,这里的它们都是简单的字符串,但是相同的方法适用于任何 R 对象,例如 ggplot ):
big_list <- list(PC1 = "Complex object1",
PC2 = "Complex object2",
PC3 = "Complex object3",
PC4 = "Complex object4",
PC5 = "Complex object5")
如果我想要一个包含此列表中元素的每个成对组合的新列表,我可以这样做:
all_combos <- apply(combn(5, 2), 2, function(i) big_list[i])
names(all_combos) <- NULL
5 个对象中有 10 种可能的成对组合,所以我将有一个长度为 10 的列表,每个列表本身都是我的复杂对象的长度为 2 的列表:
str(all_combos)
#> List of 10
#> $ :List of 2
#> ..$ PC1: chr "Complex object1"
#> ..$ PC2: chr "Complex object2"
#> $ :List of 2
#> ..$ PC1: chr "Complex object1"
#> ..$ PC3: chr "Complex object3"
#> $ :List of 2
#> ..$ PC1: chr "Complex object1"
#> ..$ PC4: chr "Complex object4"
#> $ :List of 2
#> ..$ PC1: chr "Complex object1"
#> ..$ PC5: chr "Complex object5"
#> $ :List of 2
#> ..$ PC2: chr "Complex object2"
#> ..$ PC3: chr "Complex object3"
#> $ :List of 2
#> ..$ PC2: chr "Complex object2"
#> ..$ PC4: chr "Complex object4"
#> $ :List of 2
#> ..$ PC2: chr "Complex object2"
#> ..$ PC5: chr "Complex object5"
#> $ :List of 2
#> ..$ PC3: chr "Complex object3"
#> ..$ PC4: chr "Complex object4"
#> $ :List of 2
#> ..$ PC3: chr "Complex object3"
#> ..$ PC5: chr "Complex object5"
#> $ :List of 2
#> ..$ PC4: chr "Complex object4"
#> ..$ PC5: chr "Complex object5"
因此,要访问第一对对象,我会这样做:
all_combos[[1]]
#> $PC1
#> [1] "Complex object1"
#>
#> $PC2
#> [1] "Complex object2"
推荐阅读
- python - 如何自动删除 m。从 URL 中提取一部分,同时保持当前链接的其余部分完整
- html - 仅当子元素存在时,XPath 才选择父元素
- javascript - 如何获取 createAt 对象?
- c - 从文件描述符发送输入
- visual-studio-code - 如何添加作为终端命令的语言格式化程序?
- android - 如何从 .txt/.xml 文件创建字符串/字符串数组?
- symfony - 自动配置不使用 symfony 依赖注入标记命令
- http - Vue.js - 如果我在 Vue-router 和后端有相同的路由,谁先响应?
- debugging - CLion - 如何配置附加到现有进程以调试 .dylib
- apache - 如何阻止我的域名恶意重定向?