2

dlplyで層別化された線形回帰を適合させるために使用する関数を書きたいと思います

"cat1 by arg1"

だから私の関数はこのようになります

fun1 <- function(arg1) {
     m1 <- data.frame(...) 
     mod.var <- ...
     mod.form <- formula(paste("y ~", paste(mod.var, collapse = " + ")))
     list_of_models <- dlply(m1, .(cat1,arg1), function(X) lm(mod.form, data = X, 
          na.action=na.omit), .parallel=FALSE) 
}

関数を呼び出したときにfun1("cat2")関数が実行されるように関数を作成する方法

list_of_models <- dlply(m1, .(cat1,cat2), function(X) lm(mod.form, data = X,
    na.action = na.omit), .parallel=FALSE)

そして関数を呼び出すとfun1("cat3")、関数が実行されます

list_of_models <- dlply(m1,.(cat1,cat3), function(X) lm(mod.form, data = X,
    na.action=na.omit), .parallel=FALSE)

ここでcat1cat2cat3はカテゴリ変数の名前です。

ご協力ありがとうございました。

編集:現時点では機能が立っているため、".(cat1,arg1)"で「認識」されていないため、正しく機能しませんdlply。いくつかの変更が必要ですが、どのように?

4

1 に答える 1

4

c("cat1", arg1)の代わりに試してください.(cat1, arg1)

引用?dlply

引数

.variables データ フレームを分割するための変数 (クォートされた変数として、数式または文字ベクトル)

于 2011-05-27T11:14:48.307 に答える