【发布时间】:2015-03-10 11:03:46
【问题描述】:
我正在寻找迭代 R 的最佳方式。我知道简单的解决方案,例如:
times <- 3
for(i in 1:times){
}
但是如果时间
for(i in seq_len(times))
如果我想从 start 迭代到 end :
for(i in seq_len(end - start))
但是如果end-start < 0 那么:
seq_len(-1)
Error in seq_len(-1) : argument must be coercible to non-negative integer
我知道我可以在循环之前检查end-start < 0,但这不是很干净的解决方案......还有其他想法吗?
澄清一下 - 我正在寻找类似于其他编程语言的解决方案,例如 C++/Java:
for(int i = start; i < end; i++)
所以如果start=5 和end=3 循环甚至不会开始。
【问题讨论】:
-
如果你正在迭代一个对象本身,你可以使用
seq_along。这能解决您的问题吗? -
如果没有更多的例子,很难说出什么是有意义的——这个循环有什么作用?但是,您可以在
for中执行abs(end-start),这是绝对值(不是负数) - 这有帮助吗? -
并非如此。
seq_along不起作用,我有范围,而不是对象。我已经编辑了问题:) -
为什么要投反对票?这个问题有什么问题?