[R] t.test in for loop

Peter Ehlers ehlers at ucalgary.ca
Thu Jul 22 19:49:49 CEST 2010


On 2010-07-22 11:28, Arne Schulz wrote:
> Dear list,
> I'd like to do several t-test within a for loop. Example follows:
>
> data1<- rnorm(1:25)
> data2<- rnorm(1:25)
> vars<- c("data1", "data2")
>
> for (i in vars) {
> 	t.test(i)	
> }
>
> Unfortunately, it does not work because of the quotes in the vars-vector (running t.test(data1) by hand works).
>
> How can I remove the quotes before performing the test?
 >
 > Sincerely,
 > Arne Schulz
 >

Here are two ways:

# 1. use get()
for (i in vars) {
	print(t.test(get(i)))
}

# 2. put your data into a list (or dataframe); then use lapply();
L <- list(data1 = data1, data2 = data2)
lapply(L, t.test)

   -Peter Ehlers



More information about the R-help mailing list