0

私は現在、生物学的システムの区画をモデル化するために使用している一連の方程式を持っています。モデルに必要なコンパートメントの数の for ループの外側で変数 n を設定できるようにしたいと考えています。次に、関数がその数の dn.dt を出力できるようにしたいと考えています。関数の最後にそれらをベクトルとして返さなければならないことは確かですが、それが唯一のリードです。以下は、n = 3 の場合の基本的な関数の目的です。

rate <- function(time, state, parms){
  with(as.list(c(state,parms)),{
    dX.dt <- do stuff
    d1.dt <- do different stuff 
    d2.dt <- do same stuff as d1.dt
    d3.dt <- do same stuff as d1.dt
    return(list(c(dX.dt, d1.dt, d2.dt, d3.dt)))})}

どうすればこれを行うことができますか?

4

1 に答える 1

0

私はあなたが後だと思います、あなたは必要な複製の数としてreplicate渡すことができます。n

rate <- function(time, state, parms, n){

  dX.dt <- with(as.list(c(state,parms)), foo(....))
  dn.dt <-  with(as.list(c(state,parms)), replicate(n, foobar(...), simplify = FALSE)

return(c(dX.dt, dn.t))))}

必要かどうかはわかりませんwith(as.list(c(state,parms))が、簡単な再現可能な例がなければ、確信が持てません。

于 2012-10-29T23:54:25.900 に答える