Cómo crear un vector autoacumulable en R

Creo que esto es muy fácil pero mi R kung-fu es débil. Estoy tratando de crear un vector de sí mismo de forma acumulativa. Este código funciona pero me gustaría algo mucho más elegante y automatizado. Tengo millones de filas que deben acumularse.

a <- c(4,4,5,1,9)
a <- a[order(-a[])]
k <- a[1:length(a)]/sum(a)
w <- c(k[1],k[1]+k[2],k[1]+k[2]+k[3],k[1]+k[2]+k[3]+k[4],k[1]+k[2]+k[3]+k[4]+k[5])
w

Respuestas a la pregunta(1)

Su respuesta a la pregunta