una tablas tabla studio resumen para intervalos hacer funcion frecuencias frecuencia datos cruzadas crear como comandos clase agrupados r count cumulative-sum

tablas - Recuento acumulado en R



tabla de frecuencias en r studio (4)

¿Hay alguna forma de contar la cantidad de veces que aparece un objeto en una columna de forma acumulativa en R?

Por ejemplo, di que tengo la columna:

id 1 2 3 2 2 1 2 3

Esto se convertiría en:

id count 1 1 2 1 3 1 2 2 2 3 1 2 2 4 3 2

etc ...

Gracias


Aquí hay una manera de obtener los conteos:

id <- c(1,2,3,2,2,1,2,3) sapply(1:length(id),function(i)sum(id[i]==id[1:i]))

Lo que te da:

[1] 1 1 1 2 3 2 4 2


El marco de datos que tenía era demasiado grande y la respuesta aceptada seguía fallando. Esto funcionó para mí:

library(plyr) df$ones <- 1 df <- ddply(df, .(id), transform, cumulative_count = cumsum(ones)) df$ones <- NULL


Función para obtener el recuento acumulativo de cualquier matriz, incluida una matriz no numérica:

cumcount <- function(x){ cumcount <- numeric(length(x)) names(cumcount) <- x for(i in 1:length(x)){ cumcount[i] <- sum(x[1:i]==x[i]) } return(cumcount) }


La función ave calcula una función por grupo.

> id <- c(1,2,3,2,2,1,2,3) > data.frame(id,count=ave(id==id, id, FUN=cumsum)) id count 1 1 1 2 2 1 3 3 1 4 2 2 5 2 3 6 1 2 7 2 4 8 3 2

Utilizo id==id para crear un vector de todos los valores TRUE , que se convierten en numéricos cuando se pasan a la cumsum . Puede reemplazar id==id con rep(1,length(id)) .