[R] forcing apply() to return data frame
Marc Schwartz (via MN)
mschwartz at mn.rr.com
Fri Apr 21 17:25:11 CEST 2006
On Fri, 2006-04-21 at 07:37 -0700, Thomas Lumley wrote:
> On Fri, 21 Apr 2006, Federico Calboli wrote:
> > Hi All,
> > I am (almost) successfully using apply() to apply a function recursively
> > on a data matrix. The function is question is as.genotype() from the
> > library 'genetics'
> > apply(subset(chr1, names$breed == 'lab'),2,as.genotype,sep ="")
> > Unfortuantely apply puts it's results into a matrix object rather than a
> > data frame, tranforming my factors into numerics and making the results
> > useless.
> > Is there a way of forcing apply() to return a data frame rather than a
> > matrix?
> The conversion to a matrix happens on the way in to apply, not on the way
> out, so no.
This may be a naive example, as I don't work in this domain, but based
upon reviewing the online help at:
and presuming that the intent of the code above is referenced by the
first bullet in the Details section of the function, would the following
This presumes that 'chr1' is a data frame or can be coerced to one as
chr1 <- as.data.frame(chr1)
data.frame(lapply(subset(chr1, names$breed == 'lab'),
as.genotype, sep =""))
More information about the R-help