在purrr::map调用中查看底层对象

在purrr::map调用中查看底层对象,r,tidyverse,purrr,R,Tidyverse,Purrr,我有一个因变量名称的字符向量,它被重复的回归调用使用,大致如下: library(purrr) c('hp', 'wt', 'disp') %>% paste('mpg ~', .) %>% map(as.formula) %>% map(lm, data = mtcars) 转换为公式的顺序来自alistaire的答案。但是,使用map作为对多个变量重复调用的一种方式,会从摘要输出中屏蔽变量名称: #> [[1]] #> #>

我有一个因变量名称的字符向量,它被重复的回归调用使用,大致如下:

library(purrr)
c('hp', 'wt', 'disp') %>% 
    paste('mpg ~', .) %>% 
    map(as.formula) %>% 
    map(lm, data = mtcars)
转换为公式的顺序来自alistaire的答案。但是,使用
map
作为对多个变量重复调用的一种方式,会从摘要输出中屏蔽变量名称:

#> [[1]]
#> 
#> Call:
#> .f(formula = .x[[i]], data = ..1)       <- This is what I'm talking about
#> 
#> Coefficients:
#> (Intercept)           hp  
#>    30.09886     -0.06823
#> ...

有没有办法在
map
调用中公开底层的
.x
变量内容,从而使摘要输出更加透明?
例如,我希望得到类似典型的
lm
调用输出,
lm(formulua=mpg~hp,data=mtcars)

lm
中更新
呼叫是一个选项

library(purrr)
library(dplyr)
map(c('hp', 'wt', 'disp'), ~ reformulate(.x, response = "mpg") %>% {
                             fml <- .
                             lm1 <- lm(.,  data = mtcars)
                             lm1$call <- fml
                             lm1
        })
库(purrr)
图书馆(dplyr)
映射(c('hp','wt','disp'),~重新格式化(.x,response=“mpg”)%>%{

在我看来,fml最好使用
nest
ing和
map
ping。我认为这是
Call
的问题。您可以随时更新调用,您可以使用
map(c('hp','wt','disp'),~重新格式化(.x,response=“mpg”)%>%lm(data=mtcars))
@akrun重新格式化的方法在调用中也有同样的问题。输出是
lm(公式=,数据=mtcars)
。你说
lm(公式=.x,数据=mtcars)
更好。所以,我不知道你期望什么
library(purrr)
library(dplyr)
map(c('hp', 'wt', 'disp'), ~ reformulate(.x, response = "mpg") %>% {
                             fml <- .
                             lm1 <- lm(.,  data = mtcars)
                             lm1$call <- fml
                             lm1
        })