Using functions/loops for repetitive commands
Hello, Derek, see below.
On Thu, 5 May 2011, dereksloan wrote:
I still need to do some repetitive statistical analysis on some outcomes from a dataset. Take the following as an example; id sex hiv age famsize bmi resprate 1 M Pos 23 2 16 15 2 F Neg 24 5 18 14 3 F Pos 56 14 23 24 4 F Pos 67 3 33 31 5 M Neg 34 2 21 23 I want to know if there are statistically detectable differences in all of the continuous variables in my data set when subdivided by sex or hiv status (ie are age, family size, bmi and resprate different in my male and female patients or in hiv pos/neg patients) Of course I can use wilcoxon or t-tests e.g: wilcox.test( age~sex) wilcox.test(famsize~sex) wilcox.test(bmi~sex) wilcox.test(resprate~sex) wilcox.test( age~hiv) wilcox.test(famsize~hiv) wilcox.test(bmi~hiv) wilcox.test(resprate~hiv) .... [snip]
Define, e. g.,
my.wilcox.tests <- function( var.names, groupvar.name, data) {
lapply( var.names,
function( v) {
form <- as.formula( paste( v, "~", groupvar.name))
wilcox.test( form, data = data)
} )
}
and call something like
my.wilcox.test( <character vector with relevant variable names>,
<character string with relevant grouping variable>,
data = <your data set as data frame>)
Caveat: untested!
Hth -- Gerrit
---------------------------------------------------------------------
Dr. Gerrit Eichner Mathematical Institute, Room 212
gerrit.eichner at math.uni-giessen.de Justus-Liebig-University Giessen
Tel: +49-(0)641-99-32104 Arndtstr. 2, 35392 Giessen, Germany
Fax: +49-(0)641-99-32109 http://www.uni-giessen.de/cms/eichner