我正在尝试在R中创建一个自定义函数,该函数允许用户对数据集执行线性回归,我希望用户能够输入要分组的数据的变量,以便对数据集。我遇到的问题是尝试将用户定义的变量列表添加到自定义函数中。下面我尝试使用“ ...”,但这不起作用。如果有人知道我应该如何处理这个问题,那就太好了。供参考供参考-lr.1 =数据集-ddate = x变量-alue = y变量-数据应分组的变量)
`grouped.lr = function(lr.1,ddate, value, ...){
test = lr.1 %>%
group_by(...) %>%
nest() %>%
mutate(mod = map(data, fitmodel.test),
pars = map(mod, tidy),
pred = map(mod, augment))}`
答案 0 :(得分:0)
这里使用formula似乎很合适,因为它允许用户指定预测变量-响应关系。
公式对象也被接受为各种模型的格式,因此可以直接传递给lm()函数。
# function training a linear model and a random forest
build_my_models <- function(formula, data) {
lm.fit <- lm(formula, data)
rf.fit <- randomForest(formula, data)
return(list(lm.fit, rf.fit))
}
# data frame with three continuous variables
a <- rnorm(100)
b <- rnorm(100, mean = 2, sd = 4)
c <- 2*a + b
my_data <- data.frame(a = a, b = b, c = c)
# build the models
my_models <- build_my_models(a ~ ., my_data)
# here the formula 'a ~ .' defines the relation between response and predictors
# (the dot indicates that 'a' depends on all other variables in the data frame)
如果您想自己实现模型,坚持使用R的语法和约定绝不是坏主意。您可以查看有关如何解析特定需求的公式的文档。