r - 将线性模型应用于指定变量时使用映射

标签 r

我希望执行一个线性模型,这样对于我的 n协变量,它运行 n次为 y ~ x1 , ..., y ~ xn .我已经用 for 循环完成了它,所以我对让它与映射一起工作很感兴趣。

例如,map函数有一个例子,它为 mpg ~ wt 运行一个线性模型。对于变量 cyl 的每个因子水平.然后给出三个线性模型——一个用于 cyl 的每个因子水平。 :

library(purrr)

mtcars %>%
  split(.$cyl) %>%
  map(~ lm(mpg ~ wt, data = .x))

如果相反,我希望使用 map函数为某些变量运行线性模型(例如,假设我有一个带有“cyl”和“wt”的向量,我希望运行 lm(mpg ~ cyl) 然后运行 ​​lm(mpg ~ wt)

谢谢。

最佳答案

我们可以使用 map2通过 vector具有与 list 的长度相同的长度

library(tidyverse)
mtcars %>%
  group_split(cyl) %>%
  map2(., c("cyl", "wt", "drat"), ~ lm(paste0("mpg ~ ", .y), data = .x))

或使用 reformulate
mtcars %>%
   group_split(cyl) %>%
   map2(., c("cyl", "wt", "drat"), ~ lm(reformulate(.y, "mpg"), data = .x))

如果打算有多个lm每个list元素
mtcars %>%
    group_split(cyl) %>% 
    map(~  {
          data = .x
           map(c("cyl", "wt"), ~ lm(reformulate(.x, "mpg"), data = data))
        })

关于r - 将线性模型应用于指定变量时使用映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55248824/

相关文章:

r - 有没有办法访问 R 包二进制文件中的 C 源代码?

R 编程无法在 SpatialPointsDataFrame 上运行 head()

R data.table 添加列作为另一个 data.table 的函数

r - 从 R 中的雅虎财经中提取历史分析师意见

r - R中如何获取调用函数环境中的对象?

r - ggplot 中的次要点没有填充

r - R Markdown中的图形大小

r - R中的类lambda函数?

r - 观察事件以隐藏 Shiny 的操作按钮

r - 'x' 是一个列表,但没有组件 'x' 和 'y'