我习惯于用Java编写for循环:
for (ii=10; ii<length(myarray); ii++) { }如果length(my array)小于10,则循环不执行。我怎么用R语言做这件事?
如果我试着用R语言:
for (ii in 10:length(myarray)) { }例如,如果length(myarray)小于10,则循环将执行。如何编写循环,使其在本例中不会执行?
发布于 2015-06-04 16:57:06
使用if。
if (length(myarray) >= 10) {
for (ii in 10:length(myarray)) {...}
}如果这一点太清楚,您可以使用while尝试使R更像Java。
ii = 10
while (ii < length(myarray)) {
...
ii = ii + 1
}但我从没见过R程序员这么做。正如您所说,它确实将if和for替换为单个while,但它增加了初始化ii并在循环中增加ii的需要。
发布于 2015-06-04 17:04:48
你可以用for (ii in tail(seq_along(myarray), -9))。当tail(..., -9)的长度小于10时,myarray将返回myarray。
发布于 2015-06-04 17:36:10
为了完整起见,请注意,您也可以通过修改seq调用来做到这一点:
for(i in seq(from=10, to=length(myarray), by=1) {...}但是,如果length(myarray)小于10,这将产生一个错误,而不是不执行。根据您正在做的事情,这可能是可取的,也可能是不可取的。
https://stackoverflow.com/questions/30649797
复制相似问题