Я пытаюсь вычислить кумулятивное среднее значение столбца в моем фрейме данных, но я хочу, чтобы это делалось только на основе условия.
data <- data.frame(col1 = c("A","A","B","B","A"),
col2 = c(1,0,1,0,1))
Допустим, я хочу вычислить col3
как cummean
из col2
, но только если col1 = "A"
Ожидаемый результат должен быть
A 1 1.00
A 1 0.50
B 1 NA
B 0 NA
A 1 0.67
В идеале было бы неплохо, если бы значения NA приняли значение lag
cummean по умолчанию. Что-то вроде
A 1 1.00
A 1 0.50
B 1 0.50
B 0 0.50
A 1 0.67
Я пытался mutate_if
, но не мог понять правильный синтаксис. Возможно, ответ должен быть cummean
внутри ifelse
с обычным mutate
. Не уверен, что это лучший способ подойти. Любая помощь очень ценится. Спасибо!