[R] help on "stacking" matrices up

PIKAL Petr petr.pikal at precheza.cz
Fri Nov 30 14:51:26 CET 2012


Hi

try to make your example easier and reproducible.

I get

> CONCF <-matrix(c(CONC1+CONC2+CONC3+CONC4+CONC5+CONC6+CONC7+CONC8))
Error in CONC1 + CONC2 : non-conformable arrays

so I cannot understand what shall the final plot look like.

Regards

Petr


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of Andras Farkas
> Sent: Friday, November 30, 2012 12:51 PM
> To: r-help at r-project.org
> Subject: [R] help on "stacking" matrices up
> 
> Dear All,
> 
> #I have the following code
> 
> Dose<-1000
> Tinf <-0.5
> INTERVAL <-8
> TIME8 <-matrix(c((0*INTERVAL):(1*INTERVAL)))
> TIME7 <-matrix(c((0*INTERVAL):(2*INTERVAL)))
> TIME6 <-matrix(c((0*INTERVAL):(3*INTERVAL)))
> TIME5 <-matrix(c((0*INTERVAL):(4*INTERVAL)))
> TIME4 <-matrix(c((0*INTERVAL):(5*INTERVAL)))
> TIME3 <-matrix(c((0*INTERVAL):(6*INTERVAL)))
> TIME2 <-matrix(c((0*INTERVAL):(7*INTERVAL)))
> TIME1 <-matrix(c((0*INTERVAL):(8*INTERVAL)))
> CDURINF1 <-((Dose/Tinf)*(1/(0.088*76.9)))*(1-exp(-0.088*TIME1))
> CAFTINF1 <-((Dose/Tinf)*(1/(0.088*76.9)))*(1-exp(-0.088*Tinf))*(exp(-
> 0.088*(TIME1)))
> CONC1 <-ifelse(TIME1<=Tinf,CDURINF1,CAFTINF1)
> CDURINF2 <-((Dose/Tinf)*(1/(0.088*76.9)))*(1-exp(-0.088*TIME2))
> CAFTINF2 <-((Dose/Tinf)*(1/(0.088*76.9)))*(1-exp(-0.088*Tinf))*(exp(-
> 0.088*(TIME2)))
> CONC2 <-ifelse(TIME2<=Tinf,CDURINF2,CAFTINF2)
> CDURINF3 <-((Dose/Tinf)*(1/(0.088*76.9)))*(1-exp(-0.088*TIME3))
> CAFTINF3 <-((Dose/Tinf)*(1/(0.088*76.9)))*(1-exp(-0.088*Tinf))*(exp(-
> 0.088*(TIME3)))
> CONC3 <-ifelse(TIME3<=Tinf,CDURINF3,CAFTINF3)
> CDURINF4 <-((Dose/Tinf)*(1/(0.088*76.9)))*(1-exp(-0.088*TIME4))
> CAFTINF4 <-((Dose/Tinf)*(1/(0.088*76.9)))*(1-exp(-0.088*Tinf))*(exp(-
> 0.088*(TIME4)))
> CONC4 <-ifelse(TIME4<=Tinf,CDURINF4,CAFTINF4)
> CDURINF5 <-((Dose/Tinf)*(1/(0.088*76.9)))*(1-exp(-0.088*TIME5))
> CAFTINF5 <-((Dose/Tinf)*(1/(0.088*76.9)))*(1-exp(-0.088*Tinf))*(exp(-
> 0.088*(TIME5)))
> CONC5 <-ifelse(TIME5<=Tinf,CDURINF5,CAFTINF5)
> CDURINF6 <-((Dose/Tinf)*(1/(0.088*76.9)))*(1-exp(-0.088*TIME6))
> CAFTINF6 <-((Dose/Tinf)*(1/(0.088*76.9)))*(1-exp(-0.088*Tinf))*(exp(-
> 0.088*(TIME6)))
> CONC6 <-ifelse(TIME6<=Tinf,CDURINF6,CAFTINF6)
> CDURINF7 <-((Dose/Tinf)*(1/(0.088*76.9)))*(1-exp(-0.088*TIME7))
> CAFTINF7 <-((Dose/Tinf)*(1/(0.088*76.9)))*(1-exp(-0.088*Tinf))*(exp(-
> 0.088*(TIME7)))
> CONC7 <-ifelse(TIME7<=Tinf,CDURINF7,CAFTINF7)
> CDURINF8 <-((Dose/Tinf)*(1/(0.088*76.9)))*(1-exp(-0.088*TIME7))
> CAFTINF8 <-((Dose/Tinf)*(1/(0.088*76.9)))*(1-exp(-0.088*Tinf))*(exp(-
> 0.088*(TIME8)))
> CONC8 <-ifelse(TIME8<=Tinf,CDURINF8,CAFTINF8)
> CONCF <-matrix(c(CONC1+CONC2+CONC3+CONC4+CONC5+CONC6+CONC7+CONC8))
> plot(CONCF,type="l")
> 
> I am trying to plot CONCF in a specific way. Let me try to explain: I
> would like to plot it so that the x axis goes from 0 to 8*INTERVAL
> (here the INTERVAL represents time in hours), and then each "segments"
> of the matrix  would  be added to the sum of the previous ones at a
> specific moment in time. Assuming a much shorter example this is what
> it should be like where according to the same equations above each
> value of CONCi was calculated at 1 h intervals:
> INTERVAL <=3
> time points here where the values are calculated is 0:(3*INTERVAL) for
> CONC1, 0:(2*INTERVAL) for CONC2, and 0:(1*INTERVAL) for CONC3, all
> calculated at 1 hour intervals
> 
> and lets assume calculated values are:
> 
> CONC1 <-c(0,1,2,3,4,5,6,7,8,9)
> CONC2 <-c( 11,12,13,14,15,16,17)
> CONC3 <-(21,22,23,24)
> .
> .
> .
> 
> so I would like to get CONCF that would have the following values:
> CONCF <-c(0,1,2,3+11,4+12,5+13,6+14,7+15,8+16,9+17,
> 6+14+21,7+15+22,8+16+23,9+17+23) please note that CONC2 was started to
> be added to CONC1 at 1*INTERVAL value estimated for CONC1, ie CONC1 has
> the value of 3 at hour 3, and I need to add the value of CONC2 at hour
> zero to it, and so on...
> hope I made it clear enough and thanks for the help,
> 
> Andras
> 	[[alternative HTML version deleted]]




More information about the R-help mailing list