Как вызвать функцию с аргументом dlply?
Я хочу написать функцию, используя 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
, Нужны некоторые модификации, но как?
1 ответ
Решение
Пытаться c("cat1", arg1)
вместо .(cat1, arg1)
,
Приводя ?dlply
:
аргументы
.variables
переменные для разделения фрейма данных, как указано в кавычках, формула или символьный вектор