我有一个看似简单的问题,但我似乎无法找到一个好的解决方案。
我有一个逻辑向量,如下所示:
vector = c(FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE)
我希望该向量仅包含一个 TRUE 值。所以其中之一需要变成 FALSE。我不想手动完成,因为这是循环的一部分。通常,在循环中生成的逻辑向量将只包含一个 TRUE 值。有时它会生成两个或更多,如果发生这种情况,我想“删除”其他 TRUE 值。
我试过这个:
if(length(which(vector)) > 1) {
for(j in 1:(length(which(vector)) - 1)) {
which(vector)[j] <- FALSE
}
}
但后来我收到一个错误:
Error in which(vector) <- '*vtmp*' : could not find function "which<-"
最佳答案
这是一个选项
vector & cumsum(vector) <2
关于r - 使逻辑向量中的 'true' 值唯一,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59791968/