Apply passes the row as a vector, not as a dataframe. So you need to remove the colons in x[, alive] and x[, dead]
results <-apply(raw.sample,1,function(x) t.test(x[alive],x[dead])) Cheers, Thierry ---------------------------------------------------------------------------- ir. Thierry Onkelinx Instituut voor natuur- en bosonderzoek / Reseach Institute for Nature and Forest Cel biometrie, methodologie en kwaliteitszorg / Section biometrics, methodology and quality assurance Gaverstraat 4 9500 Geraardsbergen Belgium tel. + 32 54/436 185 [EMAIL PROTECTED] www.inbo.be Do not put your faith in what statistics say until you have carefully considered what they do not say. ~William W. Watt A statistical analysis, properly conducted, is a delicate dissection of uncertainties, a surgery of suppositions. ~M.J.Moroney > -----Oorspronkelijk bericht----- > Van: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] Namens Andrew Yee > Verzonden: maandag 4 juni 2007 15:34 > Aan: Peter Dalgaard > CC: [email protected] > Onderwerp: Re: [R] getting t.test to work with apply() > > Thanks for everyone's suggestions. > > I did try > > results <-apply(raw.sample,1,function(x) t.test(x[,alive],x[,dead])) > > However, I get: > > "Error in x[, alive] : incorrect number of dimensions" > > Full disclosure, raw.sample is a data.frame, and I am using > alive and dead as indexing vectors. > > On the other hand, the lapply suggestion works better. > > results <- lapply(1:nrow(raw.sample), function(i) t.test(raw.sample > [i,alive],raw.sample[i,dead])) > > Thanks, > Andrew > > > On 6/4/07, Peter Dalgaard <[EMAIL PROTECTED]> wrote: > > > Petr Klasterecky wrote: > > > Andrew Yee napsal(a): > > > > > >> Hi, I'm interested in using apply() with t.test() on a > data.frame. > > >> > > >> Specifically, I'd like to use apply() to do the following: > > >> > > >> t.test(raw.sample[1,alive],raw.sample[1,dead]) > > >> t.test(raw.sample[2,alive],raw.sample[2,dead]) > > >> t.test(raw.sample[3,alive],raw.sample[3,dead]) > > >> etc. > > >> > > >> I tried the following, > > >> > > >> apply(raw.sample,1,function(x) > t.test(raw.sample[,alive],raw.sample > > [,dead])) > > >> > > > > > > Two comments: > > > 1) apply() works on arrays. If your dataframe only has numeric > > > values, turn it (or its copy) to a matrix via > as.matrix(). If it has > > > mixed variables, take only the numeric part for t-tests. The > > > conversion is made implicitly but explicit asking for it > cannot hurt. > > > 2) the main problem - you are using a wrong argument to t.test > > > > > > The call should look like > > > apply(as.matrix(raw.sample), 1, function(x){t.test(x[alive], > > > x[dead])}) > > > > > > assuming 'alive' and 'dead' are logical vectors of the > same length > > > as > > 'x'. > > > > > > Petr > > > > > Notice also that the other apply-style functions may give an easier > > route to the goal: > > > > lapply(1:N, function(i) > > t.test(raw.sample[i,alive],raw.sample[i,dead])) > > > > or (maybe, depends on raw.sample being a data frame and alive/dead > > being indexing vectors) > > > > mapply(t.test, raw.sample[,alive], raw.sample[,dead]) > > > > > > > >> but it gives me a list of identical results. > > >> > > >> > > >> Thanks, > > >> Andrew > > >> > > >> [[alternative HTML version deleted]] > > >> > > >> ______________________________________________ > > >> [email protected] mailing list > > >> https://stat.ethz.ch/mailman/listinfo/r-help > > >> PLEASE do read the posting guide > > http://www.R-project.org/posting-guide.html > > >> and provide commented, minimal, self-contained, > reproducible code. > > >> > > >> > > > > > > > > > > > > -- > > O__ ---- Peter Dalgaard Ă˜ster Farimagsgade 5, Entr.B > > c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K > > (*) \(*) -- University of Copenhagen Denmark Ph: (+45) > > 35327918 > > ~~~~~~~~~~ - ([EMAIL PROTECTED]) FAX: (+45) > > 35327907 > > > > > > [[alternative HTML version deleted]] > > ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
