r - 使用 quosures 映射变量列表
问题描述
假设我想用来purrr::map
创建一个模型列表,每个模型都使用不同的变量作为预测变量。我想我可以做这样的事情:
library(tidyverse)
myvars <- vars(cyl, disp, hp)
list_of_models <- map(myvars, function(x) lm(mpg ~ !!x, data = mtcars))
有人可以解释为什么这不起作用吗?
所需的输出是:
list(
lm(mpg ~ cyl, data = mtcars),
lm(mpg ~ disp, data = mtcars),
lm(mpg ~ hp, data = mtcars))
解决方案
这是一种不同的方法,但很容易遵循。
library(tidyverse)
library(purrr)
library(magrittr)
mtcars %>%
select(cyl, disp, hp) %>%
map(~lm(mtcars$mpg ~ .x, data = mtcars))
输出
$`cyl`
Call:
lm(formula = mtcars$mpg ~ .x, data = mtcars)
Coefficients:
(Intercept) .x
37.885 -2.876
$disp
Call:
lm(formula = mtcars$mpg ~ .x, data = mtcars)
Coefficients:
(Intercept) .x
29.59985 -0.04122
$hp
Call:
lm(formula = mtcars$mpg ~ .x, data = mtcars)
Coefficients:
(Intercept) .x
30.09886 -0.06823
希望这可以帮助!
推荐阅读
- python - 类似于matlab的for循环
- java - 如何在列表项目java中使用多个类
- javascript - this.setState 不是文件上传 ReactJS 的函数
- google-apps-script - 为什么 setValue() 只粘贴第一个单元格而不是整个范围?
- typescript - 为什么我不能将 U 分配给 Partial
当 T 扩展 U 时? - sql - 将 nvarchar 值“2,3”转换为数据类型 int 时转换失败错误
- reactjs - 如何在开发过程中将本地 React 库与本地 React 项目链接?
- laravel - 如何仅编译 app.js 并使用 lavarel mix 跳过供应商包?
- html - 有没有办法只显示 Django 中日期时间字段的日期?
- c# - 使用 Google API 恢复特定版本的电子表格