首页 > 解决方案 > 循环遍历多个数据集

问题描述

我的问题如下 - 我在文件夹中保存了 100 个数据集,这些数据集称为 dat1.csv - dat100.csv。我想对它们中的每一个进行回归。到目前为止,我已经使用以下循环来做到这一点:

cesta_data = gsub(pattern = "\\\\","/",readline())
\\srv332\nt332\data\R_Project\REGRESE\VSTUP

listova<-list.files(cesta_data)

for (i in 1:length(listova)){
  data<-read.csv2(paste(cesta_data,"/",listova[i],sep=""),header=TRUE)      
  formula1<-as.formula(anuita~KH)                                             
  regrese<-lm(formula = formula1, data = data)                             
  a<-regrese$coefficients                     
}

每个循环我上传 csv 文件,执行回归并保存结果(代码示例中不包含)。

有没有办法用我可以循环的 R 数据集创建一个“对象”?像这样的东西:

cesta_data = gsub(pattern = "\\\\","/",readline())
\\srv332\nt332\data\R_Project\REGRESE\VSTUP

listova<-list.files(cesta_data)

for (i in 1:length(listova)){
  DATA[i]<-read.csv2(paste(cesta_data,"/",listova[i],sep=""),header=TRUE)      
  formula1<-as.formula(anuita~KH)                                             
  regrese<-lm(formula = formula1, data = DATA[i])                             
  a<-regrese$coefficients                     
}

非常感谢您的任何建议。

编辑:我创建了以下解决方案,效果很好:

listDat<-list.files(cesta_data)  #all the files in the folder

 my_data_list<-list()             
 for (i in seq_along(listDat)){
     my_data_list[[i]] = read.csv2(paste(cesta_data,"/",listDat[i],sep=""), header = TRUE) 
  }    

 for (i in seq_along(listDat)){
      regrese<-lm(formula = anuita~KH, data = my_data_list[[i]])
      a<-regrese$coefficients
  }

标签: rloopsdataset

解决方案


推荐阅读