在R中的自定义函数中按用户定义的列表分组

时间:2019-01-07 14:36:44

标签: r regression

我正在尝试在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))}`

1 个答案:

答案 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的语法和约定绝不是坏主意。您可以查看有关如何解析特定需求的公式的文档。