for 循环 - R 向量循环混淆



我正在学习R,我已经在我的代码中追踪了一个问题,以期望循环向量会做什么。这就是我感到困惑的地方 - 假设我有一个数字向量,其中包含两个不连续的元素。

x <- c(1, 3)

如果我遍历向量以对其包含的值执行某些操作,则无法获得值。例如,此循环

for (i in x) {
    print(x[i])
}

打印输出

[1] 1
[1] NA

但我希望它打印 1 和 3,而不是 1 和 NA。

我知道我误解了什么,但我看不出是什么。如果有人能帮助我澄清我的理解,我将不胜感激。

如上面的评论所示,答案是使用以下方法:

for (i in 1:length(x)){
}

您的代码执行以下操作:

第一次迭代:i 设置为 x (1) 中

的第一个值,使用 i 查找 x (1) 中的第一个值。第二次迭代:i 在 x (3) 中设置为第二个值,使用 i 查找 x 中的第三个值(不存在,所以 NA)。