r - 在 R 中的自定义函数中按用户定义的列表分组
问题描述
我正在尝试在 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))}`
解决方案
似乎在这里使用公式可能很合适,因为它允许用户指定预测器-响应关系。
公式对象也被接受为各种模型的格式,因此可以直接传递给 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 的语法和约定绝不是一个坏主意。您可以查看有关如何根据您的特定需求解析公式的文档。
推荐阅读
- crm - 异常捕获 - 从另一方收到不安全或不正确安全的故障
- javascript - 使用 jsearch marklogic 进行通配符搜索
- ios - iOS:编译新应用程序时对构建进行签名
- cmake - 如何将编译器参数传递给 Cmake
- snowflake-cloud-data-platform - 雪花数据类型转换
- reactjs - 什么是 React 本机 ssl pining ?如何在 React Native 中实现 ssl 证书?
- javascript - 如果输入太快,自动跳到下一个输入字段不会得到所有字母
- android - Firebase 实时数据库连接被终止:不同的区域
- azure-resource-manager - 什么是 MultiRolePool Azure 资源
- kubernetes - Keel.sh 看不到 pod