[R] help with doing a manipulation on a column of a data frame based on another column

joris meys jorismeys at gmail.com
Wed Oct 29 13:39:03 CET 2008


> #this is my stab at - I am sure that I am missing something.  If this
> doesn't make sense then please ask for more details.  #This may show
> my low level of programing knowledge
>
> hester. <- c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4)
> value <- rnorm(16)
> x <- data.frame(value, hester.)
>
> z <-
> (if(x[,"hester."]==1){
> x[,"value"]*6.250}
> else
> if(x[,"hester."]==2){
> x[,"value"]*3.125}
> else
> if(x[,"hester."]==3){
> x[,"value"]*2.100}
> else
> if(x[,"hester."]==4){
> x[,"value"]*1.600})


Does this do what you want?

  > h <- rep(1:4,each=4)
  > z <- c(6.25,3.125,2.1,1.6)[match(h,1:4)]
  > x <- data.frame(hester.=h,value=z)

	cheers,

		Rolf Turner

---------------------------------------------
I suspect some random values should be included, making the code :
> h <- rep(1:4,each=4)
  > z <- c(6.25,3.125,2.1,1.6)[match(h,1:4)]
  > x <- data.frame(hester.=h,value=z*rnorm(16))

Kind regards
Joris



More information about the R-help mailing list