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: http://finzi.psych.upenn.edu/R/library/genetics/html/genotype.html 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 work? This presumes that 'chr1' is a data frame or can be coerced to one as in: chr1 <- as.data.frame(chr1) Thus: data.frame(lapply(subset(chr1, names$breed == 'lab'), as.genotype, sep ="")) HTH, Marc Schwartz ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html