带增量的R中的For循环
我试图写一个for循环,它将把它的值增加2。等效代码为c is带增量的R中的For循环,r,for-loop,R,For Loop,我试图写一个for循环,它将把它的值增加2。等效代码为c is for (i=0; i<=78; i=i+2) 有关(i=0;i的详细信息,请参见?seq: for(i in seq(from=1, to=78, by=2)){ # stuff, such as print(i) } 或 p、 请原谅我的无知。我刚刚暴露了自己 然而,这是一种在R中实现所需功能的方法(请参阅更新的代码) 编辑 在了解了一些C的工作原理后,问题中的示例似乎重复了以下顺序:02468…747678 要
for (i=0; i<=78; i=i+2)
有关(i=0;i的详细信息,请参见?seq
:
for(i in seq(from=1, to=78, by=2)){
# stuff, such as
print(i)
}
或
p、 请原谅我的无知。我刚刚暴露了自己
然而,这是一种在R中实现所需功能的方法(请参阅更新的代码)
编辑
在了解了一些C的工作原理后,问题中的示例似乎重复了以下顺序:02468…747678
要在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
你们可以用下面的方法来做,你们可以把任何你们想要迭代的长度替换为长度(v1),并且把位置2的增量值替换为你们想要的值
for(i in seq(1,length(v1),2))
@概率可能值得一提的是,在R中经常使用for循环
是不必要的。如果您提供了一个更完整的具体问题示例(或问另一个问题),则for循环
很可能被完全省略。例如,打印(seq(1,72,2))
与BenBarnes提供的代码做了相同的事情,@Justin的例子要快得多。在互联网上搜索“r for loops”以获取更多信息。@Justin,print(seq(1,72,2))会产生不同的输出。循环将每个元素打印为一个元组(在自己的行上)。这不是首选。如果循环可以由向量操作替换(或应用),可能应该是这样。@Justin,循环中的代码有时会被卷积,循环索引只是很小的一部分,在这种情况下,矢量化就不存在了。@RomanLuštrik的观点很好。我只是想指出,如果给出一个更完整的示例,提供的解决方案通常会更“R”“喜欢”和“经常”可以完全松开循环。然而,有时确实无法避免它们!请发布一个更完整的示例…在R中,很可能您实际上不需要for循环。
for(i in seq(1,length(v1),2))