作成した関数で使用する一連のパラメーターを作成して返す関数を作成したいと思いますmySimulation。今までは、基本的に、例えば mySimulation(parm1 = 3, parm2 = 4). (1) 実際のバージョンでは、パラメーターの数が扱いにくくなっており、(2) 使用しているさまざまなモデルを生成するパラメーターのさまざまな組み合わせを追跡したいため、これは最適ではありません。createParmsそこで、このトリックを実行するために (以下に示す最小限のバージョンを)書きました。しかし、私の全体的なアプローチはとても不格好に思えます。すべての統計学者が R を使用しているため、私の問題を処理するためのより標準的な方法があると確信しています...そうですか?
createParms <- function(model = "default", ...) {
# Returns a list `parms` of parameters which will then be used in
# mySimultation(parms)
#
# Args:
# model: ["default" | "mymodel"] character string representation of a model
# with known parameters
# ...: parameters of the existing `model` to overwrite.
# if nothing is supplied then the model parameters will be left as is.
# passed variables must be named.
# e.g., `parm1 = 10, parm2 = 20` is good. `10, 20` is bad.
#
# Returns:
# parms: a list of parameters to be used in mySimulation(parms)
#
parms.names <- c("parm1", "parm2")
parms <- vector(mode = "list", length = length(parms.names))
names(parms) <- parms.names
overwrite <- list(...)
overwrite.names <- names(overwrite)
if (model == "default") {
parms$parm1 <- 0
parms$parm2 <- 0
} else if (model == "mymodel") {
parms$parm1 <- 1
parms$parm2 <- 2
}
if (length(overwrite) != 0) {
parms[overwrite.names] <- overwrite
}
return(parms)
}