我有一个问题需要在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
一直持续到达到一个状态。
有人可以通过其他方式告诉我是否有可能吗?
谢谢,
罗宾
答案 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本身用于其他事物的名称总是一个好主意。