Gunnar Oehmichen
2011-Jul-29 10:30 UTC
[R] Using perm.t.test() upon Matrix/Dataframe columns parted by factor instead of t.test()
Hello dear subscribed Users, this is my first post, so please forgive me for any inconveniences. The following problem: I have a dataframe containing a factor column. For each column i would like to compare means as parted by the factor. Using the normal t.test function I have already achieved my goal. But i think, that for my original data, a permutational t.test would be better suited. Herein lies the problem. Whereas i can specify the factor as group parting in the formular expression I am not able to do this with perm.t.test() from deducer. Have fun with this trivial undergraduate problem. Code: c(rep("A", 5), rep("B", 5))->Faktor matrix(rnorm(100, mean=20, sd=4), nrow=10, ncol=10)->M colnames(M) <- c("species1","species2", "species3","species4","species5","species6","species7","species8","species9", "species10") ###Conventional T-Test to test for differences of each species per factor lapply( M, function(x) t.test(x~ Faktor) ) ###Trying it for perm.t.test without the helpful formular expression. Does not work lapply( M, function(x) perm.t.test(subset(M, Faktor=="A"), subset(M, Faktor=="B")) ) Thank you very much for your help, Gunnar
R. Michael Weylandt <michael.weylandt@gmail.com>
2011-Jul-29 13:11 UTC
[R] Using perm.t.test() upon Matrix/Dataframe columns parted by factor instead of t.test()
Just a hunch I can't test from my phone, but in your final lapply you are passing a function of x that has no x in it, so I wouldn't be surprised if R was unhappy about that. Change the latter M's to x and see if that helps. Cheers Michael Weylandt On Jul 29, 2011, at 6:30 AM, Gunnar Oehmichen <oehm8895 at uni-landau.de> wrote:> Hello dear subscribed Users, > > this is my first post, so please forgive me for any inconveniences. > > The following problem: I have a dataframe containing a factor column. > For each column i would like to compare means as parted by the factor. Using the normal t.test function I have already achieved my goal. But i think, that for my original data, a permutational t.test would be better suited. Herein lies the problem. Whereas i can specify the factor as group parting in the formular expression I am not able to do this with perm.t.test() from deducer. Have fun with this trivial undergraduate problem. > > Code: > > c(rep("A", 5), rep("B", 5))->Faktor > > matrix(rnorm(100, mean=20, sd=4), nrow=10, ncol=10)->M > > colnames(M) <- c("species1","species2", "species3","species4","species5","species6","species7","species8","species9", "species10") > > ###Conventional T-Test to test for differences of each species per factor > > lapply( > M, function(x) > t.test(x~ Faktor) > ) > > ###Trying it for perm.t.test without the helpful formular expression. Does not work > > lapply( > M, function(x) > perm.t.test(subset(M, Faktor=="A"), > subset(M, Faktor=="B")) > ) > > Thank you very much for your help, > > Gunnar > > ______________________________________________ > R-help at r-project.org 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.