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) } 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@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.