Learn R Programming

DatABEL (version 0.9-6)

apply2dfo: applies a function to a 'databel' object

Description

An iterator applying a user-defined function to an object of 'databel-class'.

Usage

apply2dfo(..., dfodata, anFUN = "lm", MAR = 2, procFUN, outclass = "matrix", outfile, type = "DOUBLE", transpose = TRUE)

Arguments

...
arguments passed to the anFUN
dfodata
'databel' object which is iterated over
anFUN
user-defined analysis function
MAR
which margin to iterate over (default = 2, usually these are 'columns' used to store SNP data)
procFUN
function to process the output and present that as a fixed-number-of-columns matrix or fixed-length vector. Can be missing if standard functions listed below are used. Pre-defined processors included are "process_lm_output" (can process functions "lm", "glm", "coxph") and "process_simple_output" (process output from "sum", "prod", "sum_not_NA" [no. non-missing obs], "sum_NA" [no. missing obs.])
outclass
output to ("matrix" or "databel")
outfile
if output class is "databel", the generated object is bound to the outfile
type
if output class is "databel", what data type to use for storage
transpose
whether to transpose the output

Value

A matrix (or 'databel'-matrix) containing results of applying the function

Examples

Run this code
a <- matrix(rnorm(50), 10, 5)
rownames(a) <- paste("id", 1:10, sep="")
colnames(a) <- paste("snp", 1:5, sep="")
b <- as(a, "databel")
apply(a, FUN="sum", MAR=2)
apply2dfo(SNP, dfodata=b, anFUN="sum")
tA <- apply2dfo(SNP, dfodata=b, anFUN="sum",
                outclass="databel", outfile="tmpA")
tA
as(tA, "matrix")
apply2dfo(SNP, dfodata=b, anFUN="sum", transpose=FALSE)
tB <- apply2dfo(SNP, dfodata=b, anFUN="sum", transpose=FALSE,
                outclass="databel", outfile="tmpB")
tB
as(tB, "matrix")

sex <- 1*(runif(10)>.5)
trait <- rnorm(10) + sex + as(b[, 2], "vector") +
         as(b[, 2], "vector") * sex * 5
apply2dfo(trait~SNP*sex, dfodata=b, anFUN="lm")
tC <- apply2dfo(trait ~ SNP * sex, dfodata=b, anFUN="lm",
                outclass="databel", outfile="tmpC")
tC
as(tC, "matrix")
apply2dfo(trait ~ SNP * sex, dfodata=b, anFUN="lm", transpose=FALSE)
tD <- apply2dfo(trait ~ SNP * sex, dfodata=b, anFUN="lm",
                transpose=FALSE, outclass="databel", outfile="tmpD")
tD
as(tD, "matrix")
rm(tA, tB, tC, tD)
gc()
unlink("tmp*")

Run the code above in your browser using DataLab