2010-04-02 12 views
13

Estoy usando por() para evaluar una función por factores en mi marco de datos, pero necesito usar los resultados en forma de tabla.clase "Por" en marco de datos en R

He visto el uso de as.data.frame.table para obtener un objeto de clase "Por" en un marco de datos, pero no estoy seguro de si esto solo funciona cuando el número de factores empleados en el() la función es la misma que la duración de la salida "por". Usando as.data.frame.table me sale el siguiente error

" ... argumentos implican diferentes número de filas: 10, 33"

¿Hay otra manera de hacer esto? ¿Se puede usar de forma tajante en lugar de por() para obtener una clase de salida diferente?

por cierto, estoy usando por() para convertir mis datos en una tabla de frecuencias y luego reagruparse por contenedores estándar

BT_by <- by(BT_H, BT_H$Tax_pp, function(BT_H) hist(rep.int(BT_H$Altitude, BT_H$Count), breaks = seq(0,6600,200), plot = FALSE)$counts) 

Cualquier ayuda se agradece.

+1

Creo que es mejor que uses 'cut' y' xtabs'. – hadley

Respuesta

18

La salida de by es esencialmente solo una lista. Si desea combinar esos vectores, puede usar do.call(rbind, BT_by) (o cbind según la forma que realmente desee).

+1

Gracias Jonathan, eso es exactamente lo que quería. – CCID

+4

'do.call' no funcionó, pero la aplicación directa de' rbind' sí lo hizo: 'rbind (BT_by)'. –

Cuestiones relacionadas