2015-06-11 130 views
-1

我正在学习R,并且我已经在我的代码中追踪了一个问题,以期望循环遍历一个矢量。这就是我感到困惑 - 说我有一个数字向量,其中有两个不连续的元素。R矢量循环混淆

x <- c(1, 3) 

如果我通过向量循环来处理它包含的值,我没有得到值。这个循环,例如,

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

打印出

[1] 1 
[1] NA 

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

我知道我误解了一些东西,但我看不到什么。如果有人能帮我理清我的理解,我将不胜感激。

+0

使用'for(i in 1:length(x))' –

+1

或者使用'for(i in x){print(i)}'现在你会混淆索引和迭代。 – MrFlick

回答

0

用如上述评论表明,答案是使用follwing:

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

} 

你的代码做如下:

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