我希望使用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)
其中cat1
,cat2
和cat3
是分类变量的名称。
感谢您的帮助。
编辑:由于该功能目前处于暂停状态,因此".(cat1,arg1)"
中的dlply
无法识别,因此无效。需要进行一些修改,但是如何进行修改?
答案 0 :(得分:4)
尝试使用c("cat1", arg1)
代替.(cat1, arg1)
。
引用?dlply
:
参数
.variables
变量将数据框拆分为引用变量,公式或字符向量