From: Juan Carlos Borrás <jcborras_at_gmail.com>

Date: Thu, 07 Apr 2011 17:27:39 +0300

colnames(z) <- c('x','y')

par(mfrow=c(1,3))

plot(z, pch=5, col="blue")

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. Received on Thu 07 Apr 2011 - 14:33:03 GMT

Date: Thu, 07 Apr 2011 17:27:39 +0300

Wonderful, or the closest to heaven I've been the whole afternoon, but not quite there:

N <- 300 M <- 2 x <- matrix(data=rnorm(N*M, 0, 3)-10, ncol=M, nrow=N) y <- matrix(c(1,-2,-2,1), ncol=M, nrow=M) z <- data.frame(x %*% y)

colnames(z) <- c('x','y')

par(mfrow=c(1,3))

plot(z, pch=5, col="blue")

whiten <- scale # no need to re-invent the wheel, I agree
fc <- function(dfrm, coln) transform(dfrm, coln=whiten(dfrm[coln]))
colxy <- "x"

z1 <- fc(z, colxy) # the "[" function will interpret colxy
colnames(z1)

> [1] "x" "y" "x.1"

fc <- function(dfrm, coln) transform(dfrm, coln=whiten(dfrm[,coln]))
colxy <- "x"

z2 <- fc(z, colxy) # the "[" function will interpret colxy
colnames(z2)

> [1] "x" "y" "coln"

#end code

What I want is to know whether I can customize the column name of the
result of the transform() call.

Your hint is fantastic, thanks there, but I keep getting into that
particular pattern of computation over and over and I wonder if it's
possible to skip a column clean-up after applying your trick.

2011/4/7 David Winsemius <dwinsemius_at_comcast.net>:

*>
*

> On Apr 7, 2011, at 9:56 AM, Juan Carlos Borrás wrote:

*>
**>> Hi all,
**>> I am whitening my data:
**>>
**>> # code begins
**>> N <- 300
**>> M <- 2
**>> x <- matrix(data=rnorm(N*M, 0, 3)-10, ncol=M, nrow=N)
**>> y <- matrix(c(1,-2,-2,1), ncol=M, nrow=M)
**>> z <- data.frame(x %*% y)
**>> colnames(z) <- c('x','y')
**>> par(mfrow=c(1,3))
**>> plot(z, pch=5, col="blue")
**>>
**>> whiten <- function(x) { (x-mean(x))/sd(x) }
**>
**> Consider:
**>
**> whiten <- scale # no need to re-invent the wheel
**> fc <- function(dfrm, coln) transform(dfrm, coln=whiten(dfrm[coln]))
**> colxy <- "x"
**> z <- fc(z, colxy) # the "[" function will interpret colxy
**> z
**>
**>>
**>> zz <- transform(z, x=whiten(x), y=whiten(y))
**>> plot(zz, pch=3, col="red")
**>>
**>> #code ends
**>>
**>> And everything looks fine enough.
**>> But now I want to withen just one of the columns and I won't know
**>> which one until my script is running, hence I can't hard code it in
**>> the script.
**>> Then I though, well maybe if I define some convenient f...
**>>
**>> #begin code
**>>
**>> f <- function(a) { paste(a,"=withen(",a,")", sep='') }
**>> a <- 'x' # or a <- 'y' depending on user input.....
**>> f(a)
**>>>
**>>> [1] "x=withen(x)"
**>>
**>> # so I could try....
**>> zzz <- transform(z, eval(f('x')))
**>> # which of course doesn't work
**>> plot(zz, pch=3, col="green")
**>>
**>> head(z, n=2)
**>>>
**>>> x y
**>>> 1 17.167380 6.884402
**>>> 2 8.234507 13.940932
**>>
**>> head(zzz, n=2)
**>>>
**>>> x y
**>>> 1 17.167380 6.884402
**>>> 2 8.234507 13.940932
**>>
**>> #end code
**>>
**>> Could someone provide me with some hint on whether the attempted trick
**>> above is possible and how to proceed further?
**>> Thanks in advance.
**>> jcb!
**>>
**>> ______________________________________________
**>> 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.
**>
**> David Winsemius, MD
**> West Hartford, CT
**>
**>
*

Cheers,

jcb!

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. Received on Thu 07 Apr 2011 - 14:33:03 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Thu 07 Apr 2011 - 15:30:27 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*