在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
})