【发布时间】:2012-05-04 11:12:44
【问题描述】:
我正在尝试编写一个 for 循环,它将其值增加 2。等效代码是 c is
for (i=0; i<=78; i=i+2)
如何在 R 中实现同样的效果?
【问题讨论】:
-
请发布一个更完整的示例...在 R 中,您可能实际上并不想要 for 循环。
我正在尝试编写一个 for 循环,它将其值增加 2。等效代码是 c is
for (i=0; i<=78; i=i+2)
如何在 R 中实现同样的效果?
【问题讨论】:
您可以通过以下方式执行此操作,您可以将任何您想要迭代的长度代替长度(v1),并将位置 2 处的增量值设置为您想要的值
for(i in seq(1,length(v1),2))
【讨论】:
更多信息请见?seq:
for(i in seq(from=1, to=78, by=2)){
# stuff, such as
print(i)
}
或
for(i in seq(1, 78, 2))
附言原谅我对C的无知。在那里,我刚刚暴露了自己。
但是,这是在 R 中做你想做的事情的一种方式(请参阅更新的代码)
编辑
在学习了一点 C 的工作原理之后,看起来问题中发布的示例迭代了以下序列:0 2 4 6 8 ... 74 76 78。
要在 R 中完全复制它,请从 0 开始,而不是从 1 开始,如上所述。
seq(from=0, to=78, by=2)
[1] 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44
[24] 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78
【讨论】:
for loop 是不必要的。如果您提供更完整的具体问题示例(或提出另一个问题),则很有可能for loop 可以完全省略。例如,print(seq(1,72,2)) 的作用与 BenBarnes 提供的代码相同。