如何使用dlply参数调用函数?

时间:2011-05-27 10:33:09

标签: r plyr

我希望使用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无法识别,因此无效。需要进行一些修改,但是如何进行修改?

1 个答案:

答案 0 :(得分:4)

尝试使用c("cat1", arg1)代替.(cat1, arg1)

引用?dlply

  

参数

     

.variables变量将数据框拆分为引用变量,公式或字符向量