【发布时间】:2019-09-25 16:55:51
【问题描述】:
- 我有一个嵌套数据集,其中每一行在一列中包含一个带有主数据集子集的小标题。
- 我想对这些子集中的每一个运行回归,其中我改变了因变量。
- 我构建了一个函数来执行此操作,仅将一个变量作为因变量。
- 我正在尝试使用 map 来遍历多个可能的因变量,但似乎没有正确解释公式。
library(purrr)
library(tidyr)
library(rlang)
reg_across_groups <- function(df, var) {
df <- df %>%
nest(data = -c("cyl"))
var_enq <- rlang::enquo(var)
model_formula <- formula(paste0(rlang::quo_name(var_enq), "~ hp"))
df %>%
dplyr::mutate(model = purrr::map(data, ~lm(model_formula, data = .x)))
}
# Works
reg_across_groups(mtcars, mpg)
reg_across_groups(mtcars, "mpg")
# Does not work
c("mpg", "wt") %>%
map(~ reg_across_groups(mtcars, .))
我收到以下错误消息:
Error in eval(predvars, data, env) : object '.' not found
【问题讨论】:
-
功能可以改吗?