in this case you may use something like the following: DATA <- matrix(1:5, 5, 3) dimnames(DATA) <- list(c("S1","S2","S3","S4","S5"), c("V1","V2","V3")) ##################### DATA / rowSums(DATA) DATA / rep(colSums(DATA), each = nrow(DATA))
I hope it helps. Best, Dimitris ---- Dimitris Rizopoulos Ph.D. Student Biostatistical Centre School of Public Health Catholic University of Leuven Address: Kapucijnenvoer 35, Leuven, Belgium Tel: +32/(0)16/336899 Fax: +32/(0)16/337015 Web: http://med.kuleuven.be/biostat/ http://www.student.kuleuven.be/~m0390867/dimitris.htm ----- Original Message ----- From: "Andris Jankevics" <[EMAIL PROTECTED]> To: <r-help@stat.math.ethz.ch> Sent: Friday, December 08, 2006 9:36 AM Subject: [R] question about apply function > Dear R-Users, > > For example i have a data matrix with five samples and three > variables. > > DATA <- > matrix(c(1,1,1,2,2,2,3,3,3,4,4,4,5,5,5),nrow=5,ncol=3,byrow=TRUE) > colnames (DATA) <- c("V1","V2","V3") > rownames (DATA) <- c("S1","S2","S3","S4","S5") > > I want to normalize all samples to same sum of variables: > > NormFun <- function (i) {(i*(1/sum(i)))} > > Dnorm <- apply(DATA,1,NormFun) > > Why I am getting tranposed matrix Dnorm? And with my experimental > data (with > 32k variables) i am getting a slighty different results from: > > apply(DATA,1,NormFun) > apply(t(DATA),2,NormFun) > > Thankyou, > > Andris Jankevics > > ______________________________________________ > R-help@stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.