gpt4 book ai didi

r - 使用 purrr::map 在数据框中的列上迭代线性模型

转载 作者:行者123 更新时间:2023-12-04 11:48:28 24 4
gpt4 key购买 nike

我正在尝试做一个练习,以更加熟悉如何在 purrr 中使用 map 功能。我正在创建一些随机数据(10 个数据点的 10 列),然后我想使用 map 对数据框中的结果列执行一系列回归(即 lm(y ~ x, data = ))。

如果我只是重复使用第一列作为“y”,我想对从 1 到 10 的每一列作为“x”执行 10 次回归。显然结果并不重要——这只是方法。我想最终得到一个包含 10 个线性模型对象的列表。

list_of_vecs <- list()
for (i in 1:10){
list_of_vecs[[paste('vec_', i, sep = '')]] <- rnorm(10,0,1)
}
df_of_vecs <- as.data.frame(list_of_vecs)

在这里,我卡住了:
map(df_of_vecs, ~ lm(df_of_vecs[[1]] ~ . ?)

任何提示将不胜感激。

谢谢。

最佳答案

您需要根据列名构造公式,然后映射 lm作为最后一步。你可以用两个 map 来做到这一点s:

library(purrr)

df_of_vecs %>%
names() %>%
paste('vec_1 ~', .) %>%
map(as.formula) %>%
map(lm, data = df_of_vecs)

或一:
df_of_vecs %>% 
names() %>%
paste('vec_1 ~', .) %>%
map(~lm(as.formula(.x), data = df_of_vecs))

两者都返回相同的十个模型列表。

关于r - 使用 purrr::map 在数据框中的列上迭代线性模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41112046/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com