[R] Application of "merge" and "within"

Duncan Murdoch murdoch.duncan at gmail.com
Sat May 28 22:53:50 CEST 2016


On 27/05/2016 7:00 PM, Santosh wrote:
> Dear Rxperts!
>
> Is there a way to compute relative values.. using within().. function?
>
> Any assistance/suggestions are highly welcome!!
> Thanks again,
> Santosh...
> ___________________________________________________________________
> A sample dataset and the computation "outside" within()  function is shown..
>
> q <- data.frame(GL = rep(paste("G",1:3,sep = ""),each = 50),
>                 G  = rep(1:3,each = 50),
>                 D = rep(paste("D",1:5,sep = ""),each = 30),
>                 a = rep(1:15,each = 10),
>                 t = rep(seq(10),15),
>                 b = round(runif(150,10,20)))
> r <- subset(q,!duplicated(paste(G,a)),sel=c(G,a,b))
> names(r)[3] <- "bl"
> s <- merge(q,r)
>  s$db <- s$b-s$bl
>
>> head(s,5)
>     G  a GL  D  t  b bl db
> 1   1  1 G1 D1  1 13 13  0
> 2   1  1 G1 D1  2 16 13  3
> 3   1  1 G1 D1  3 19 13  6
> 4   1  1 G1 D1  4 12 13 -1
> 5   1  1 G1 D1  5 19 13  6

Just use

  s <- within(s, db <- b - bl)

Duncan Murdoch



More information about the R-help mailing list