From: David Winsemius <dwinsemius_at_comcast.net>

Date: Thu, 07 Apr 2011 11:13:51 -0400

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 - 15:16:40 GMT

Date: Thu, 07 Apr 2011 11:13:51 -0400

On Apr 7, 2011, at 10:27 AM, Juan Carlos Borrįs wrote:

> Wonderful, or the closest to heaven I've been the whole afternoon, but

*> not quite there:
**>
**> # begin code
**> 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.
*

I haven't stumbled on a solution to that task. I am wondering if you could use something like:

.... kludgy to be sure.

> 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!
*

David Winsemius, MD

West Hartford, CT

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 - 15:16:40 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 Fri 08 Apr 2011 - 09:40:28 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.
*