繁体   English   中英

使用while循环遍历数组,直到在R中为空

[英]Using a while loop to iterate over array until it becomes empty in R

所以我无法弄清楚。

我遍历此数组并逐行删除,找不到'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”循环中发生了什么。

在此先感谢您的帮助!

您需要添加drop=FALSE以避免在最后一步将数组变成向量,从而弄乱了维索引。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM