rowFtests {genefilter}R Documentation

t-tests and F-tests for rows or columns of a matrix


t-tests and F-tests for rows or columns of a matrix


rowttests(x, fac, tstatOnly = FALSE) 
colttests(x, fac, tstatOnly = FALSE)
fastT(x, ig1, ig2, var.equal = TRUE)

rowFtests(x, fac, var.equal = TRUE)
colFtests(x, fac, var.equal = TRUE)


x exprSet or numeric matrix. The matrix must not contain NA values.
fac Factor; if x is an exprSet, this may also be a character vector of length 1 with the name of a covariate variable in x.
For the row* functions, the length of the factor must be the same as the number of columns of x. For the col* functions, it must be the same as the number of rows of x. For the *ttests function, fac must have exactly two levels.
tstatOnly a logical variable indicating whether to calculate parametric p-values. If FALSE, just the t-statistics are returned. This can be considerably faster.
ig1 The indices of the columns of x that correspond to group 1.
ig2 The indices of the columns of x that correspond to group 2.
var.equal a logical variable indicating whether to treat the variances in the samples as equal. If 'TRUE', a simple F test for the equality of means in a one-way analysis of variance is preformed. If 'FALSE', an approximate method of Welch (1951) is used, which generalizes the commonly known 2-sample Welch test to the case of arbitrarily many samples.


rowttests and colttests are implemented in C and are reasonably fast and memory-efficient. fastT is a wrapper for rowttests, useful for some legacy code.

If fac is specified, rowttests performs for each row of x a two-sided, two-class t-test with equal variances. fac must be a factor of length ncol(x) with two levels, corresponding to the two groups. The sign of the resulting t-statistic corresponds to "group 1 minus group 2".

If fac is missing, rowttests performs for each row of x a two-sided one-class t-test against the null hypothesis 'mean=0'.

rowFtests and colFtests are currently implemented using matrix algebra in R. Compared to the *ttests functions, they are slower and use more memory.

If var.equal is 'FALSE', nrow(x)+1 degree of freedoms are given, the first one is the first degree of freedom (it is the same for each row) and the other ones are the second degree of freedom (one for each row).


For the row* and col* functions, a list with the test statistics, p-values, and degrees of freedom. Additonally, the t-test functions return the differences of group means.


Wolfgang Huber <>


B. L. Welch (1951), On the comparison of several mean values: an alternative approach. Biometrika, *38*, 330-336

See Also



   x  = matrix(runif(970), ncol=97)
   f2 = factor(floor(runif(ncol(x))*2))
   f7 = factor(floor(runif(ncol(x))*7))

   r1 = rowttests(x)
   r2 = rowttests(x, f2)
   r7 = rowFtests(x, f7)

   ## compare with pedestrian tests
   about.equal = function(x,y,tol=1e-10)
     stopifnot(all(abs(x-y) < tol))

   s1 = t.test(x[1,])
   about.equal(s1$statistic, r1$statistic[1])
   about.equal(s1$p.value,   r1$p.value[1])

   s2 = t.test(x[1,] ~ f2, var.equal=TRUE)
   about.equal(s2$statistic, r2$statistic[1])
   about.equal(s2$p.value,   r2$p.value[1])

   dm = -diff(tapply(x[1,], f2, mean))
   about.equal(dm, r2$dm[1])

   s7 = summary(lm(x[1,]~f7))
   about.equal(s7$statistic$value, r7$statistic[1])

   ## colttests
   c2 = colttests(t(x), f2)
   stopifnot(identical(r2, c2))

[Package genefilter version 1.8.0 Index]