【问题标题】:How to loop regressions over a list of data frames?如何在数据框列表上循环回归?
【发布时间】:2020-04-13 17:28:42
【问题描述】:

我有一个包含 192 个大小相同且变量相同的数据帧的列表,唯一的区别是因变量在数据帧之间发生变化(值不是名称),其余的保持不变。该列表如下所示:

数据 = (df1, df2, df3,..., df192)

每个 df 的大小为 17 x 7

目标是对列表中的每个数据框运行回归,因此,最后我将拥有 192 个 lm 对象。这是我的第一个循环,所以我一直在努力解决这个问题。

我的尝试如下:

reg_list = list() # I create a list in which I will store my 192 lm objects
for (i in data) {
reg_list[[i]] = lm(x1 ~ x2 +x3)
}

我知道缺少数据的参数,但由于它们是 192 dfs,我不知道如何向 R 表明这一点。

感谢任何解决此问题的建议。

【问题讨论】:

    标签: r loops for-loop


    【解决方案1】:

    以下对我有用:

    data = list(data.frame(x=c(1,4,6),y=c(1,2,5)),data.frame(x=c(1,4,6),y=c(0,8,7)),data.frame(x=c(4,4,2),y=c(1,2,5)))
    lm(y~x,data=data[[1]]) #example on number 1: specify source of data 
    
    for(i in 1:length(data)){
        reg_list[[i]]=lm(y~x,data=data[[i]]) #loop through from 1-legnth(data)
    } 
    

    或者你可以这样做:

    for(i in 1:length(data)){
        reg_list[[i]]=summary(lm(y~x,data=data[[i]])) 
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-15
      • 2021-12-12
      • 2021-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-20
      相关资源
      最近更新 更多