[R] Using perm.t.test() upon Matrix/Dataframe columns parted by factor instead of t.test()
David Winsemius
dwinsemius at comcast.net
Fri Jul 29 15:37:17 CEST 2011
On Jul 29, 2011, at 9:11 AM, R. Michael Weylandt <michael.weylandt at gmail.com
> wrote:
> 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.
Not likely. 'x' is a formal argument of the function. He's using
lapply on a matrix. lapply is generally used for lists. but in this
case it results in sending individual numbers one-by-one to that
function, They are them each being t.tested against a ten item vector.
Failure is the predictable outcome but he did not see fit to reproduce
the informative error message that told him there was a mismatch of
lengths.
He should use:
apply(M, 2, function(x)
t.test(x~ Faktor))
--
david.
>
> 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.
>
> ______________________________________________
> 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.
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list