veces studio repite quitar nulos filtrar eliminar duplicados duplicado datos dato cuantas contar como casos r

repite - eliminar duplicados en r studio



Encuentre cuántas veces se repiten las filas duplicadas en el marco de datos R (4)

Aquí está la solución usando la función ddply() de la biblioteca plyr

library(plyr) ddply(df,.(a,b),nrow) a b V1 1 1 2.5 1 2 1 3.5 2 3 2 2.0 2 4 3 1.0 1 5 4 2.2 1 6 4 7.0 1

Esta pregunta ya tiene una respuesta aquí:

Tengo un marco de datos como el siguiente ejemplo

a = c(1, 1, 1, 2, 2, 3, 4, 4) b = c(3.5, 3.5, 2.5, 2, 2, 1, 2.2, 7) df <-data.frame(a,b)

Puedo eliminar filas duplicadas del marco de datos R con el siguiente código, pero ¿cómo puedo encontrar cuántas veces se repiten cada fila duplicada? Necesito el resultado como un vector.

unique(df)

o

df[!duplicated(df), ]


Aquí hay dos enfoques.

# a example data set that is not sorted DF <-data.frame(replicate(sequence(1:3),n=2)) # example using similar idea to duplicated.data.frame count.duplicates <- function(DF){ x <- do.call(''paste'', c(DF, sep = ''/r'')) ox <- order(x) rl <- rle(x[ox]) cbind(DF[ox[cumsum(rl$lengths)],,drop=FALSE],count = rl$lengths) } count.duplicates(DF) # X1 X2 count # 4 1 1 3 # 5 2 2 2 # 6 3 3 1 # a far simpler `data.table` approach library(data.table) count.dups <- function(DF){ DT <- data.table(DF) DT[,.N, by = names(DT)] } count.dups(DF) # X1 X2 N # 1: 1 1 3 # 2: 2 2 2 # 3: 3 3 1


Siempre puedes matar dos pájaros con la piedra:

aggregate(list(numdup=rep(1,nrow(df))), df, length) # or even: aggregate(numdup ~., data=transform(df,numdup=1), length) # or even: aggregate(cbind(df[0],numdup=1), df, length) a b numdup 1 3 1.0 1 2 2 2.0 2 3 4 2.2 1 4 1 2.5 1 5 1 3.5 2 6 4 7.0 1


Utilizando dplyr:

summarise(group_by(df,a,b),length(b))

o

group_size(group_by(df,a,b)) #[1] 1 2 2 1 1 1