使用while循环迭代数组,直到它在R中变为空

时间:2018-04-19 19:53:42

标签: arrays r loops while-loop

所以我无法弄清楚这一点。

我循环遍历此数组并逐行删除,我无法找到'while'循环的正确退出条件。我所拥有的是以下内容:

array1 <- array(0,dim = c(5,2))
while(nrow(array1) > 0) {
    #do something
    array1 = array1[-1,]
 }

这给了我错误

Error in while (nrow(array1) > 0) { : argument is of length zero

而如果我手动测试它:

array1 = array1[-(1:5),]
nrow(array1) > 0
# [1] FALSE

因此(理论上)打破'while'循环中的条件。 “while”循环中发生的事情会导致错误。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您需要添加drop=FALSE以避免在最后一步中将数组转换为向量,从而弄乱维度索引。

array1 <- array(0,dim = c(5,2))
while(nrow(array1) > 0) {
   #do something
   array1 = array1[-1,, drop=FALSE]
}