Tenho uma coluna que possui valores como abaixo:
x <- c(23, 17, 25, 22, 21, 51, 22, NA, 62, 27, NA, NA, 27, 50, NA,
NA, 22, 19, 27, 27, NA, 25, NA, NA, 25)
Quero criar uma nova coluna que indique se o valor na coluna acima até aquela linha é o valor máximo até o momento.
Portanto, para a primeira linha, a nova entrada de coluna será 1, já que 23 é o primeiro valor mais alto.
A segunda linha na nova coluna será 0, pois 17 não é o máximo de 23 17
A terceira linha na nova coluna será 1, já que 25 é o máximo de 23 17 25
E assim por diante...
A nova coluna deve ser como
1 0 1 0 0 1 0 ..
Não tenho certeza de como fazer isso. Posso pensar em loops, mas deve haver uma maneira mais clara.
Os NA devem ser mantidos
Supondo que você queira preservar os NAs, você pode fazer
Basicamente, transforme todos os valores de NA no menor valor observado e veja se
x
é igual ao máximo cumulativoSe não houvesse valores NA, isso seria apenas
(Ele
+0
apenas transforma os valores TRUE/FALSE em 1/0)