[R] apply with a division
Greg Kettler
gkettler at gmail.com
Fri Jul 4 00:04:19 CEST 2008
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
More information about the R-help
mailing list