从odeModel中提取结果?

问题描述 投票:1回答:1

我没有尝试获得df对象作为我的输出(因此我可以对每个图进行子集/自定义)。我还读到可以使用“ out”函数提取结果,但是我还没有开始使用它。有人可以帮我吗?

'''

library(simecol)

library(latticeExtra)

Figure_7B <- odeModel(
main = function(time, init, parms) {
with(as.list(c(init, parms)),{

# Computing derivatives
dm  <- -k1*eT*m         
dmP <-  k1*eT*m    
 dE  <- -k2*E*mP         
 dEP <-  k2*mP*E  + (k3*EP)*(dE - TE - S) + k3r*TE 
 dDE <- +k3*EP*DE - k3r*TE
 dTE <-  (k3*EP)*(DE - TE - S) - k3r*TE - k7*TE*A 
 dME <-  k4*TE - d1*ME
 dDA <- +k5*EP*DA - k5r*TA
 dTA <-  k5*EP*DA - k5r*TA
 dMA <-  (k6*EP)/(EP + k5) - d2*MA
 dA  <-  k8*MA + k7*TE*A + d3*A
 dS  <-  k7*TE*A

return(list(c(dm, dmP, dE, dEP, dDE, dTE, dME, dDA, dTA, dMA, dA, dS)))

})
},

# Set parameters or constants

  parms = c(k1 = 8.3e-3,
        eT = 100, 
        k2 = 1.28e5,
        k3 = 1e5, 
        k3r = 5e-2, 
        k4 = 6.89e-15,
        k5  = 0.5e-6, 
        k5r = 5e-2, 
        k6 = 1.03e-15, 
        k7 = 1e5,
        k8 = 0.25, 
        d1 = 8.89e-4,      
        d2 = 2.36e-4,     
        d3 = 2.36e-4),

# Set integrations times
  times = c(from=0, to=10, by = 0.25),

# Set initial state
  init = c(
m = 130e-7,
mP = 0,  
E = 130e-7, 
EP = 0,   
DE = 3.32e-11, 
TE = 0,  
ME = 1e-12, 
DA = 3.32e-11, 
TA = 0, 
MA = 0,
A = 0, 
S = 0),


solver = "lsoda"

)

'''

'''

library(deSolve)

Figure_7B <- sim(Figure_7B)

plot(Figure_7B)

'''

r extract ode
1个回答
0
投票

尝试以下操作:

Figure_7B <- sim(Figure_7B)
plot(Figure_7B)
df <- out(Figure_7B)
head(df)

说明:sim()返回的对象包含所有输入(完整的Figure_7B模型)plus输出。可以使用插槽访问器功能提取模型的某些部分,例如:]

times(Figure_7B)
main(Figure_7B)

out(Figure_7B)

希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.