Try this: sweep(x, 2, as.numeric(x[1,]), FUN="/")
On Thu, Jul 3, 2008 at 7:04 PM, Greg Kettler <[EMAIL PROTECTED]> wrote: > Hi, > I'd like to normalize a dataset by dividing each row by the first row. > Very simple, right? > I tried this: > > > expt.fluor > X1 X2 X3 > 1 124 120 134 > 2 165 163 174 > 3 52 51 43 > 4 179 171 166 > 5 239 238 235 > > >first.row <- expt.fluor[1,] > > normed <- apply(expt.fluor, 1, function(r) {r / first.row}) > >normed > [[1]] > X1 X2 X3 > 1 1 1 1 > > [[2]] > X1 X2 X3 > 1 1.330645 1.358333 1.298507 > > [[3]] > X1 X2 X3 > 1 0.4193548 0.425 0.3208955 > > [[4]] > X1 X2 X3 > 1 1.443548 1.425 1.238806 > > [[5]] > X1 X2 X3 > 1 1.927419 1.983333 1.753731 > > Ugly! The values are right, but why didn't I get another 2D array > back? Shouldn't the division in my inline function return a vector? > > Thanks, > Greg > > ______________________________________________ > R-help@r-project.org 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. > -- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O [[alternative HTML version deleted]]
______________________________________________ R-help@r-project.org 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.