[R] getting t.test to work with apply()
Peter Dalgaard
P.Dalgaard at biostat.ku.dk
Mon Jun 4 10:31:45 CEST 2007
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]]
>>
>> ______________________________________________
>> R-help at 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
>> 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
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-help
mailing list