tags:

views:

157

answers:

1

I'm using by() to evaluate a function by factors in my dataframe, but I need to use the results in a table form.

I've seen a use of as.data.frame.table to get a "By" class object into a data frame, but I'm not sure if this only works when the number of factors employed in the by() function is the same as the length of the "by" output. Using as.data.frame.table I get the following error

"...arguments imply differing number of rows: 10, 33"

Is there another way of doing this? Can tapply be used instead of by() to get a different output class?

btw, I'm using by() to convert my data into a frequency table and then regroup by standard bins

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)

Any help would be appreciated.

+2  A: 

The output of by is essentially just a list. If you want to combine those vectors, you can use do.call(rbind, BT_by) (or cbind depending on what shape you actually want).

Jonathan Chang
Thanks Jonathan, that's exactly what I wanted.
CCID