Learn R Programming

hddplot (version 0.59)

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))))

Value

one F-statistic for each row of x

Arguments

x

features by observations matrix

cl

factor that classifies the values in each row

Author

John Maindonald

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