R Take Обновленный Максимум - PullRequest
0 голосов
/ 06 марта 2019

Пример данных

data =data.frame(id=c(1,1,1,2,2,2,3,3,3,4,4,4),
                 score=c(5,7,6,9,8,4,NA,11,3,7,NA,10),
                 WANT=c(5,7,7,9,9,9,NA,11,11,7,7,10))

По сути, значение WANT должно равняться максимальному значению оценки в каждой строке для каждого идентификатора.Как видите обновления.Это моя попытка, но она не обрабатывает значения NA.

data$WANT <- ave(data$score, data$id, FUN=!is.na(cummax))

1 Ответ

2 голосов
/ 06 марта 2019
ave(data$score, data$id, FUN = function(x){
    temp = cummax(replace(x, is.na(x), -Inf))
    temp[temp == -Inf] = NA
    temp
})
# [1]  5  7  7  9  9  9 NA 11 11  7  7 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...