r - 迭代2个变量for
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了r - 迭代2个变量for相关的知识,希望对你有一定的参考价值。
在R中是否有一个构造,我们可以在R中同时使用两个变量进行迭代?像这样,
for(i in list1 and j in list2)
list1和list2可以是任何可迭代的。
答案
如果for循环的内容可以写成某种函数,那么你可以使用mapply
。
a <- 1:10
b <- LETTERS[1:10]
a
[1] 1 2 3 4 5 6 7 8 9 10
b
[1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J"
mapply(paste, a, b)
[1] "1 A" "2 B" "3 C" "4 D" "5 E" "6 F" "7 G" "8 H" "9 I" "10 J"
当然,您必须将“粘贴”替换为带有2个元素(每个列表中的一个)作为输入的函数。也可以使用2个以上的列表/向量。
另一答案
通常,最好使用单个索引来迭代多个变量(相同长度),该索引充当引用列表中元素(变量)的索引:
var_list <- list(
var1 = 1:10, # 1, ..., 10
var2 = letters[17:26] # q, ..., z
)
for (i in 1:length(var_list$var1)) {
# Process each of var1 and var2
print(paste(
'var1:', var_list$var1[i],
'; var2:', var_list$var2[i]
))
}
以上是关于r - 迭代2个变量for的主要内容,如果未能解决你的问题,请参考以下文章
使用 R 中的 for 和 if 语句在fluidRow() 中进行迭代