[R] Centering data frame by factor
Daniel Malter
daniel at umd.edu
Tue Jul 19 10:50:44 CEST 2011
P1-tapply(P1,Experiment,mean)[Experiment]
HTH,
Daniel
ronny wrote:
>
> Hi,
>
> I would like to center P1 and P2 of the following data frame by the factor
> "Experiment", i.e. substruct from each value the average of its
> experiment, and keep the original data structure, i.e. the experiment and
> the group of each value.
>
> RAW=
> data.frame("Experiment"=c(2,2,2,1,1,1),"Group"=c("A","A","B","A","A","B"),"P1"=c(10,12,14,5,3,4),"P2"=c(8,12,16,2,3,4))
>
> Desired result:
>
> NORMALIZED=
> data.frame("Experiment"=c(2,2,2,1,1,1),"Group"=c("B","A","B","B","A","B"),"P1"=c(-2,0,2,1,-1,0),"P2"=c(-4,0,4,-1,0,1))
>
> I tried using "by", but then I lose the original order, and the "Group"
> varaible. Can you help?
>
>> RAW
> Experiment Group P1 P2
> 2 A 10 8
> 2 A 12 12
> 2 B 14 16
> 1 A 5 2
> 1 A 3 3
> 1 B 4 4
>
> NOT.OK<- within (RAW,
> {P1<-do.call(rbind,by(RAW$P1,RAW$Experiment,scale,scale=F))})
>
>> NOT.OK
> Experiment Group P1 P2
> 2 A 1 8
> 2 A -1 12
> 2 B 0 16
> 1 A -2 2
> 1 A 0 3
> 1 B 2 4
>
--
View this message in context: http://r.789695.n4.nabble.com/Centering-data-frame-by-factor-tp3677609p3677620.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list