【发布时间】:2019-04-17 20:33:40
【问题描述】:
我是一名初学者,无法理解 R 中多个列表(或向量)的嵌套 for 循环的输入/输出。我确信这已在其他地方得到解答(如果是,请提供链接) ,但我在网上找不到一个好的答案,用简单的术语解释它对我(我相信其他初学者编码器/R 用户)会很有帮助。
具体来说,我想知道如何正确索引列表元素,以便根据两个列表之间的某种关系建立条件,然后将满足此条件的一个列表的元素添加到新列表中。
换句话说,我想遍历列表“a”中的每个元素,检查它是否 == 到列表“b”中的任何/所有元素,如果为真,则添加列表“ a' 元素添加到新列表 'c'。
这是我尝试过的一个简化示例:
a <- as.list(c(1,2,3,11,12))
b <- as.list(c(1,2,3,4,5,6,7,8,9,10))
c <- list()
index <- 1
for (i in 1:length(a)){
for (j in 1:length(b)){
if (a[[i]] == b[[j]]) next
c[[index]] <- a[[i]]
index <- index + 1
}}
结果是一个包含 47 个元素的列表。我正在尝试的结果如下:
c
[[1]]
[1] 1
[[2]]
[1] 2
[[3]]
[1] 3
我在循环中索引元素的方式有什么问题?
【问题讨论】: