目录中多个文件的Rbind正在复制第一个文件的条目

时间:2015-09-07 03:33:32

标签: r xts rbind

程序浏览文件夹中的所有文件,处理它们并将它们装在一个文件中:

files=list.files(path="path", recursive=T, pattern='.xlsx')
for(i in 1:length(files))  
{
#some process goes which generates qs_30 for each file as the loop is run

if (!exists("dataset")){
    dataset <- qs_30
  }

  # if the merged dataset does exist, append to it
  if (exists("dataset")){
    temp_xts <-qs_30
    dataset<-rbind(dataset, temp_xts)
    rm(temp_xts)
  }
}

当写入最终数据集文件时,它会复制第一个qs_30的条目。请帮忙调试一下。

1 个答案:

答案 0 :(得分:2)

出现问题是因为数据集是在第一个之后创建的,如果然后输入第二个if,那么rbind两次

您有两种选择:

如果

,则交换两者的顺序
# if the merged dataset does exist, append to it
if (exists("dataset")){
    temp_xts <-qs_30
    dataset<-rbind(dataset, temp_xts)
    rm(temp_xts)
}
if (!exists("dataset")){
    dataset <- qs_30
}

执行其他操作而不是if

if (!exists("dataset")){
    dataset <- qs_30
  } else {
    temp_xts <-qs_30
    dataset<-rbind(dataset, temp_xts)
    rm(temp_xts)
  }