Thanks.

It turns out that the data is arranged with the rows as the variables and
the samples as the columns.  It has 10 rows.

Furthermore, when I removed the commas,

results <-apply(raw.sample,1,function(x) t.test(x[alive],x[dead]))
I get the following error message:

Error in if (stderr < 10 * .Machine$double.eps * max(abs(mx), abs(my)))
stop("data are essentially constant") :
        missing value where TRUE/FALSE needed
In addition: Warning messages:
1: argument is not numeric or logical: returning NA in: mean.default(x)
2: argument is not numeric or logical: returning NA in: mean.default(y)
>
I think in the end, the lapply suggestion works the best!

Andrew


On 6/4/07, Peter Dalgaard <P.Dalgaard@biostat.ku.dk> wrote:
>
> Andrew Yee wrote:
> > Thanks for everyone's suggestions.
> >
> > I did try
> >
> >  results <-apply(raw.sample,1,function(x) t.test(x[,alive],x[,dead]))
> >
> > However, I get:
> >
> > "Error in x[, alive] : incorrect number of dimensions"
> >
> > Full disclosure, raw.sample is a data.frame, and I am using alive and
> dead
> > as indexing vectors.
> >
> > On the other hand, the lapply suggestion works better.
> >
> > results <- lapply(1:nrow(raw.sample), function(i) t.test(raw.sample
> > [i,alive],raw.sample[i,dead]))
> >
> >
> nrow()?
>
> Oops, yes. I didn't notice that your data are transposed relative to the
> usual "cases x variables" layout.
>
> So mapply() is not going to work unless you use
> as.data.frame(t(raw.sample)) first.
>
>     -pd
> > Thanks,
> > Andrew
> >
> >
> >  On 6/4/07, Peter Dalgaard <P.Dalgaard@biostat.ku.dk> wrote:
> >
> >
> >> 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@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@biostat.ku.dk)                  FAX: (+45)
> >> 35327907
> >>
> >>
> >>
> >
> >       [[alternative HTML version deleted]]
> >
> >
> > ------------------------------------------------------------------------
> >
> > ______________________________________________
> > R-help@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@biostat.ku.dk)                  FAX: (+45)
> 35327907
>
>

	[[alternative HTML version deleted]]

