Learn R Programming

hddplot (version 0.56)

aovFbyrow: calculate aov F-statistic for each row of a matrix

Description

Returns on aov F-statistic for each row of x

Usage

aovFbyrow(x=matrix(rnorm(1000), ncol=20), cl = factor(rep(1:3, c(7,9,4))))

Arguments

x
features by observations matrix
cl
factor that classifies the values in each row

Value

one F-statistic for each row of x

Details

This uses the functions qr() and qr.qty() for the main part of the calculation, for handling the calculations efficently

See Also

See also orderFeatures

Examples

Run this code
mat <- matrix(rnorm(1000), ncol=20)
cl <- factor(rep(1:3, c(7,9,4)))
Fstats <- aovFbyrow(x = mat, cl = cl)

## The function is currently defined as
aovFbyrow <-
function(x=matrix(rnorm(1000), ncol=20),
         cl=factor(rep(1:3, c(7,9,4)))){
    y <- t(x)
    qr.obj <- qr(model.matrix(~cl))
    qty.obj <- qr.qty(qr.obj,y)
    tab <- table(factor(cl))
    dfb <- length(tab)-1
    dfw <- sum(tab)-dfb-1
    ms.between <- apply(qty.obj[2:(dfb+1), , drop=FALSE]^2, 2, sum)/dfb
    ms.within <- apply(qty.obj[-(1:(dfb+1)), , drop=FALSE]^2, 2, sum)/dfw
    Fstat <- ms.between/ms.within
  }

Run the code above in your browser using DataLab