У меня, казалось бы, простая проблема, но я не могу найти хорошее решение для нее.
У меня есть логический вектор, например:
vector = c(FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE)
Я хочу, чтобы этот вектор содержал только одно значение ИСТИНА. Таким образом, один из них должен быть превращен в ЛОЖЬ. Я не хочу делать это вручную, потому что это часть al oop. Обычно в l oop генерируемый логический вектор будет содержать только одно значение 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<-"