[R] z-transform each column of a data.frame

William Dunlap wdunlap at tibco.com
Fri Jan 20 18:41:27 CET 2012


If you use apply the result will be a matrix,
not a data.frame.  You could use a for loop
   for(j in seq_len(ncol(x))) {
      x[,j] <- scale(x[,j])
   }
or the odd looking
   x[] <- lapply(x, scale)
to scale all the columns and keep x a data.frame.

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com 

> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Martin Batholdy
> Sent: Friday, January 20, 2012 9:17 AM
> To: R Help
> Subject: Re: [R] z-transform each column of a data.frame
> 
> 
> great, thank you!
> 
> 
> On 20.01.2012, at 18:10, R. Michael Weylandt wrote:
> 
> > ? scale
> > apply(x, 2, scale)
> >
> > Michael
> >
> > On Fri, Jan 20, 2012 at 12:04 PM, Martin Batholdy
> > <batholdy at googlemail.com> wrote:
> >> Hi,
> >>
> >>
> >> I am currently trying to z-transform (that is subtracting the mean and divide by the standard
> deviation) multiple columns of a data.frame at the same time.
> >>
> >>
> >> My first approach was:
> >>
> >> x <- data.frame(c(0:10), c(10:20))
> >> (x - colMeans(x)) / apply(x, 2, sd)
> >>
> >>
> >> This is obviously not working.
> >>
> >> Is there a convenient way to z-transform each column separately (so in this case, each column
> represents an independent variable that should be z-transformed)
> >>
> >>
> >> thanks!
> >> ______________________________________________
> >> R-help at 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.
> 
> ______________________________________________
> R-help at 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.



More information about the R-help mailing list