在R中循环时在向量中添加元素

时间:2017-11-12 12:59:32

标签: r loops for-loop

我有一个问题需要在R语言中解决,但我可能需要在循环中添加元素,而我使用for循环,但循环不会通过新值。

我做了一个简单的循环来解释我遇到的问题类型。

以下是代码:

c=c(1,2)
for(i in c){
    c=c(c,i+2)
    print(i)
}

结果:

[1] 1
[1] 2

我想要这个结果:

[1] 1
[1] 2
[1] 3
[1] 4

一直持续到达到一个状态。

有人可以通过其他方式告诉我是否有可能吗?

谢谢,

罗宾

1 个答案:

答案 0 :(得分:2)

您可以改为使用while循环:

test <- c(1,2)
n    <- 1

while(n <= length(test)){
  if(n == 5){
    print(test)
    break
  }
  print(test[n])
  test <- c(test, n+2)

  n <- n + 1
}

请注意,在这种情况下,循环将继续永久打印,因此您应该添加一些其他条件以在某个时刻停止循环(这里我在5处退出)。

旁注:您使用c作为c(1,2)的名称。这通常是一个坏主意,因为c被保留用于在R中定义向量。避免使用已经由R本身用于其他事物的名称总是一个好主意。