如何在R中的purrr:map函数中循环lm函数参数
我正在尝试在R中的purrr:map函数中嵌入的lm函数上循环。替换forloop的map函数中的map也是一个受欢迎的解决方案,但目前我在lm.fit步骤中遇到了一个反复出现的错误 以下是生成的代码示例:如何在R中的purrr:map函数中循环lm函数参数,r,for-loop,nested,tidyverse,purrr,R,For Loop,Nested,Tidyverse,Purrr,我正在尝试在R中的purrr:map函数中嵌入的lm函数上循环。替换forloop的map函数中的map也是一个受欢迎的解决方案,但目前我在lm.fit步骤中遇到了一个反复出现的错误 以下是生成的代码示例: df <-tibble(var1 = rnorm(100,0,1), var2 = rnorm(100,0,1), var3 = rnorm(100,0,1), var4 = rnorm(100,0,1),
df <-tibble(var1 = rnorm(100,0,1),
var2 = rnorm(100,0,1),
var3 = rnorm(100,0,1),
var4 = rnorm(100,0,1),
var5 = rnorm(100,0,1),
var6 = rnorm(100,0,1))
var_list<-df %>%
select(var1,var2,var3) %>% colnames()
empty_list <- list()
for (i in var_list){
empty_list[[(match(i,var_list))]] <-df %>%
nest(-var5,-var6) %>%
mutate(fit = map(data, ~ lm(noquote(i) ~ var4, data = .))) %>%
mutate(augment = map(fit, ~ broom::augment(.)))
}
df%colnames()
空列表%
突变(fit=map(数据,~lm(noquote(i)~var4,数据=)))%>%
变异(augment=map(fit,~broom::augment())
}
我们可以使用粘贴创建公式,最好初始化特定长度的空列表,因为我们知道长度
基于长度(变量列表)
空列表%
变异(augment=map(fit,~broom::augment())
}
lm的lm
公式构造可以使用paste
empty_list <- vector('list', length(var_list))
names(empty_list) <- var_list
for (i in var_list){
empty_list[[i]] <- df %>%
nest(-var5,-var6) %>%
mutate(fit = map(data, ~ lm(paste0(i, '~ var4'), data = .))) %>%
mutate(augment = map(fit, ~ broom::augment(.)))
}