R 循环缺失值 TRUE/FALSE 需要
R loop missing value where TRUE/FALSE needed
我在 R 中有这段代码:
j <- 1
k <- nrow(group_IDs)
while (j <= k)
{
d_clust <- Mclust(Customers_Attibutes_s[which (Customers_Attibutes_s$Group_ID == group_IDs$Group_ID[j]),3:7], G=2:7)
temp <- cbind(Customers_Attibutes[which (Customers_Attibutes$Group_ID == group_IDs$Group_ID[j]),], as.data.frame (predict.Mclust(d_clust, Customers_Attibutes[which(Customers_Attibutes$Group_ID == group_IDs$Group_ID[j]), 3:7]))[1])
temp_ <- rbind(temp,temp_)
j <- j+1
}
while 语句中的 j <= k
返回此错误:
missing value where TRUE/FALSE needed.
group_IDs
不为空,在这种情况下它实际上包含值 8。
貌似进入循环,第二轮就崩溃了
由于 group_ IDs
是向量,请尝试 length(group_IDs)
而不是 nrow
。向量没有行,所以等价于 length
.
这是我怀疑正在发生的事情:
> group_IDs <- 8
> nrow(group_IDs)
NULL
您可以使用 for
解决索引问题,例如:
for (ID in group_IDs) {}
当然,这假设 group_IDs 是一个值向量。
注意:您的代码在循环 group_IDs$Group_ID[j]
中显示了以下内容,这意味着向量以外的内容;也许你的意思是 group_IDs[j]
?
我在 R 中有这段代码:
j <- 1
k <- nrow(group_IDs)
while (j <= k)
{
d_clust <- Mclust(Customers_Attibutes_s[which (Customers_Attibutes_s$Group_ID == group_IDs$Group_ID[j]),3:7], G=2:7)
temp <- cbind(Customers_Attibutes[which (Customers_Attibutes$Group_ID == group_IDs$Group_ID[j]),], as.data.frame (predict.Mclust(d_clust, Customers_Attibutes[which(Customers_Attibutes$Group_ID == group_IDs$Group_ID[j]), 3:7]))[1])
temp_ <- rbind(temp,temp_)
j <- j+1
}
while 语句中的 j <= k
返回此错误:
missing value where TRUE/FALSE needed.
group_IDs
不为空,在这种情况下它实际上包含值 8。
貌似进入循环,第二轮就崩溃了
由于 group_ IDs
是向量,请尝试 length(group_IDs)
而不是 nrow
。向量没有行,所以等价于 length
.
这是我怀疑正在发生的事情:
> group_IDs <- 8
> nrow(group_IDs)
NULL
您可以使用 for
解决索引问题,例如:
for (ID in group_IDs) {}
当然,这假设 group_IDs 是一个值向量。
注意:您的代码在循环 group_IDs$Group_ID[j]
中显示了以下内容,这意味着向量以外的内容;也许你的意思是 group_IDs[j]
?