Я не нашел ничего похожего на SO (или где-либо еще) и поэтому надеюсь на вашу помощь.Я еще не очень знаком с поиском векторизованных подходов, и моя первоначальная попытка кажется довольно неуклюжей.
В настоящее время у меня есть кадр данных, подобный следующему:
df <- data.frame(c(1,1,1,2,2,2,3,3,3),c(TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE))
colnames(df) <- c("ID", "Status")
Теперь я хотел бы упростить свои наблюдения, показывая TRUE, только если каждый отдельный статус для конкретного идентификатора задан как TRUE,то есть финальный стол, такой как
ID Status
1 FALSE
2 FALSE
3 TRUE
Мне удалось сделать это в цикле (опять же, даже для цикла это может быть довольно неуклюжим):
NrID <- df$ID[!duplicated(df$ID)]
for (i in NrID) {
x <- sum(df$Status[df$ID == i])
ifelse (x < max(NrID), df$Status[df$ID == i] <- FALSE, df$Status[df$ID == i] <- TRUE)
}
finaldf <- df[!duplicated(df$ID), ]
Я был бы признателен засовет или функции, как векторизовать этот подход, так как мой последний набор данных довольно большой, и я был бы просто признателен за более чистый код
Заранее спасибо!