# [R] Looped t.test results according to a subset variable

jim holtman jholtman at gmail.com
Tue Oct 23 01:52:06 CEST 2007

```It represents the subset of the data frame partitioned by 'x\$quiz'.

On 10/22/07, Matthew Dubins <matt.dubins at utoronto.ca> wrote:
> Yes!!  That did it!
>
> Does .sub represent the different levels of the x\$quiz indice?
>
>
>
> jim holtman wrote:
> Is this what you were expecting?

> by(x, x\$quiz, function(.sub) t.test(percent ~ group, data=.sub))

> x\$quiz: 1

Welch Two Sample t-test

data: percent by group
t = 6.3228, df =
> 6.231, p-value = 0.0006306
alternative hypothesis: true difference in means
> is not equal to 0
95 percent confidence interval:
30.27235 67.94193
sample
> estimates:
mean in group High mean in group Low
92.85714
> 43.75000

------------------------------------------------------------
x\$quiz:
> 2

Welch Two Sample t-test

data: percent by group
t = 1.591, df = 5.875,
> p-value = 0.1638
alternative hypothesis: true difference in means is not
> equal to 0
95 percent confidence interval:
-14.03856 65.46713
sample
> estimates:
mean in group High mean in group Low
65.71429
> 40.00000

------------------------------------------------------------
x\$quiz:
> 3

Welch Two Sample t-test

data: percent by group
t = -0.1541, df = 3.506,
> p-value = 0.886
alternative hypothesis: true difference in means is not
> equal to 0
95 percent confidence interval:
-66.87207 60.20541
sample
> estimates:
mean in group High mean in group Low
71.66667 75.00000

>
On 10/22/07, Matthew Dubins <matt.dubins at utoronto.ca> wrote:

> Hi,

Following please find *some* of my data.

percent quiz group
100 1
> High
100 1 High
100 1 High
25 1 Low
50 1 Low
75 1 High
50 1 Low
75 1
> High
100 1 High
100 1 High

50 1 Low
60 2 High
20 2 High
100 2 High
60 2
> Low
40 2 Low
80 2 High
20 2 Low
60 2 High
40 2 High
100 2 High

90 3
> High
100 3 High
0 3 High
90 3 Low
80 3 High
60 3 Low
100 3 High
60 3
> High

Here is the by command i used:

by(percent, quiz, function(percent)
> {t.test(percent~group,
data=marks.long)})

Basically it gave me three of the
> same t.tests based on the full data
set, not the subsets (quiz 1, 2 and
> 3).

So far it seems like my method is more straightforward!

Julian
> Burgos wrote:

> Could you post some of your data and your initial test, and explain
why it
> didn't worked? It is difficult to figure out what is the
problem with your
> call to by().

Julian

Matthew Dubins wrote:

> I've tried to use by(), but the closest i got to it doing what I
wanted was
> using the following:

by(percent, quiz, function(percent)
> {t.test(percent~group,
data=marks.long)})

But the results it gave me
> weren't t.tests of percent by group
according to quiz number.

Julian
> Burgos wrote:

> See by()

Matthew Dubins wrote:

> Hi all,

I wrote a simple function that gives me multiple t.test
> results
according to a subset variable and am wondering whether or not
> I
reinvented the wheel. Observe:

t.test.sub <- function (formula, data,
> sub, ...)
{
for(i in 1:max(sub))
{
print(t.test(formula, data =
> subset(data, sub ==
i), ...))
}
}

Is there already a similar function in
> some package?

Thanks,
Matthew
> Dubins

______________________________________________
R-help at r-project.org
> mailing
> list
https://stat.ethz.ch/mailman/listinfo/r-help
> guide
http://www.R-project.org/posting-guide.html
and
> provide commented, minimal, self-contained, reproducible code.

>  [[alternative HTML version
> deleted]]

______________________________________________
R-help at r-project.org
> mailing
> list
https://stat.ethz.ch/mailman/listinfo/r-help
> http://www.R-project.org/posting-guide.html
and provide
> commented, minimal, self-contained, reproducible code.

>

>
>

--
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem you are trying to solve?

```