我正在尝试练习以更熟悉如何在purrr中使用map函数。我正在创建一些随机数据(10列10个数据点)然后我想使用map在数据框中的结果列上执行一系列回归(即lm(y~x,data =))。
如果我只是重复使用第一列为“y”,我想要将每个列从1到10执行10次回归,为“x”。显然结果并不重要 - 它只是方法。我想最终得到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]] ~ . ?)
任何提示都将不胜感激。
感谢。
答案 0 :(得分:6)
您需要从列名构建公式,然后将'use strict';
window.addEventListener('readystatechange', function(e) {
console.log(window, e);
});
映射为最后一步。您可以使用两个lm
s执行此操作:
map
或者一个:
library(purrr)
df_of_vecs %>%
names() %>%
paste('vec_1 ~', .) %>%
map(as.formula) %>%
map(lm, data = df_of_vecs)
两者都返回十个模型的相同列表。