每次迭代读取和存储数据框

时间:2019-03-21 13:21:23

标签: r loops dataframe

我需要一个简单的代码来创建一个循环,该循环转到几个子文件夹,并在每次迭代中读取文件。阅读后,我想使用我拥有的因子的名称来存储数据。该因子有19个级别,我想读取19个子文件夹的19个文件。现在,每次循环都会覆盖数据,因为读取的数据始终以相同的名称存储,并且不会循环遍历因子的名称。

我尝试过的代码:

    # read data table for each region in the control period
for(l in 1:length(regions)){
  name <- regions@data$name[l]
  setwd(paste("filepath","/",name,sep=""))
  data <- read.table(paste(name,".mit",sep=""),skip=1,header=TRUE)
  data$Date <- paste(data$YYYY,"-",data$MM,"-",data$DD,sep="")
  data$Date <- as.POSIXct(data$Date,format="%Y-%m-%d")
}

1 个答案:

答案 0 :(得分:0)

在不知道您的数据等的情况下,您想要将不同文件的所有内容读入R中吗?然后,您需要为循环提供一些返回到工作区的内容。使用assign(),您可以为每个单独的区域创建一个数据框,如下所示:

 for(l in 1:length(regions)){
      name <- regions@data$name[l]
      setwd(paste("filepath","/",name,sep=""))
      data <- read.table(paste(name,".mit",sep=""),skip=1,header=TRUE)
      data$Date <- paste(data$YYYY,"-",data$MM,"-",data$DD,sep="")
      data$Date <- as.POSIXct(data$Date,format="%Y-%m-%d")
      df_name <- paste0("dataframe_",name)
      assign(df_name  ,data, envir=.GlobalEnv)

    }