[R] as.data.frame.table() to convert by() output to a data frame

Michael Ash mash at econs.umass.edu
Thu Nov 26 03:54:03 CET 2009


I remain confused by the difference between

library(MASS)
data(Cars93)

as.data.frame(tapply(Cars93$Price,list(Cars93$Origin,Cars93$AirBags,Cars93$Passengers),median))
as.data.frame.table(tapply(Cars93$Price,list(Cars93$Origin,Cars93$AirBags,Cars93$Passengers),median))


I clearly want the latter, but that's not clear from the documentation.


Best,
Michael


On Wed, Nov 25, 2009 at 5:55 PM, David Winsemius <dwinsemius at comcast.net> wrote:
>
> On Nov 25, 2009, at 4:11 PM, Michael Ash wrote:
>
>> Dear all,
>>
>> This seems to be working, but I'd like to make sure that I'm not doing
>> anything wrong.
>>
>> I am using by() to construct a complicated summary statistic by
>> several factors in my data (specifically, the 90-50 income ratio by
>> city and race).
>>
>> cityrace.by <- by(microdata, list(microdata$city,microdata$race),
>> function (x) quantile(x$income, probs=0.9) / quantile(x$income,
>> probs=0.5) )
>>
>> I would now like to use the data created by by() as a dataset with
>> city-race as the unit of observation.
>>
>> However, cityrace.data <- as.data.frame(cityrace.by) does not work because
>> "Error in as.data.frame.default(city.by) :
>>  cannot coerce class "by" into a data.frame"
>>
>> The following is not a documented use of as.data.frame.table(), but it
>> seems to work.  It gives the columns slightly strange names, including
>> "Freq" for the statistic computed in by by() but otherwise, the
>> dataframe is indexed by city and race with the 90-50 ratio as the
>> variable
>>
>> cityrace.data <- as.data.frame.table(cityrace.by)
>
> If the by-object you get happens to be a 2d array, then why not. Tables are
> matrices after all.
>
>> tt <- table(c(1,1), c(1,1))
>> tt
>
>    1
>  1 2
>> is.matrix(tt)
> [1] TRUE
>
>> --
>
>
> David Winsemius, MD
> Heritage Laboratories
> West Hartford, CT
>
>



-- 
Michael Ash, Associate Professor
  of Economics and Public Policy
Department of Economics and CPPA
University of Massachusetts
Amherst, MA 01003
Tel +1-413-545-6329 Fax +1-413-545-2921
Email mash at econs.umass.edu
http://people.umass.edu/maash




More information about the R-help mailing list