/ / Problema con el resultado de ddply en el marco de datos - R - r, plyr

Problema con el resultado de ddply en el marco de datos - R - r, plyr

Así que tengo un marco de datos, digamos con los siguientes datos:

    Count    Amount    Org         Bank
------------------------------------------
1        100      ABC       Chase
15        76       DEF    American Express
...
...

Cuando corro el ddply utilizando:

result1 <- ddply(df, 4, count = sum(as.numeric(df[[1]])), amt = sum(as.numeric(df[[2]])))

Me sale el resultado con result1 teniendo el mismo valor (es decir, count y amt) para todas las filas, es decir,

 description      count        amt
Chase             900        432087
American Express  900        432087
.....

que definitivamente no es el caso. De alguna manera, parece ser la última. sum() El valor que se calcula se aplica a todas las filas. ¿Me estoy perdiendo de algo?

Respuestas

7 para la respuesta № 1

Hay algunos problemas aquí:

  1. Estás obteniendo el mismo resultado / error Porque te estás refiriendo al marco de datos original. df en los argumentos a ddply - por ejemplo, df[[1]].
    Ddply no funciona así: use nombres de columna directamente, por ejemplo, Amount y Count.

  2. Te estás perdiendo el .fun argumento de función a ddply - en este caso summarize es apropiado.
    (Honestamente, no sé cómo funcionó tu código sin esto).

  3. Está utilizando una forma indocumentada (4) para seleccionar columnas de grupo en el .variable argumento. Tratar .(Bank) o c("Bank") en lugar.

Esto debería funcionar:

ddply(df, .(Bank), summarize, count = sum(as.numeric(Count)),
amt = sum(as.numeric(Amount)))