[R] standardising a data matrix
Martyn Plummer
plummer at iarc.fr
Fri Mar 2 15:19:28 CET 2001
On 02-Mar-01 Tord Snall wrote:
> Dear all,
> I would like to standardise my data. Here is an exemple for two columns:
>
>> onorm<- read.table("onorm.txt", header=T)
>> names(onorm)
> [1] "on1" "on2" "on3" "on4" "on5"
>> norm<- data.frame((onorm$on1-mean(onorm$on1))/stdev(onorm$on1),
> (onorm$on2-mean(onorm$on2))/stdev(onorm$on2))
>
> I would be happy however not having got to do this coulumnwise since I have
> about 80 columns. Could someone please give a hint on how to do this for
> the whole matrix.
Use sweep()
norm <- sweep(onorm, 2, apply(onorm, 2, mean), "-") # standardize mean to 0
norm <- sweep(norm, 2, apply(norm, 2, sd), "/") # standardize variance to 1
> The names of the coulumns are on1, on2 etc. as above. I want the columns in
> the new standardised dataset to have the names son1, son2 etc, i.e. adding
> an s to all the original column names. How do I do that?
names(norm) <- paste("s", names(norm), sep="")
Martyn
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
More information about the R-help
mailing list