合并多个文件文本,而不删除R中每个文件的第一行

合并多个文件文本,而不删除R中每个文件的第一行,r,merge,R,Merge,我想合并我放在文件夹中的100个文本文件。每个文件都是这样的: 0 0.72902 0 0.45426 0.54525 0 0.16167 0.34908 0.22247 0 0.52886 0.54775 0.18069 0.28457 0 0.93595 0.15927 0.8284 0.50287 0

我想合并我放在文件夹中的100个文本文件。每个文件都是这样的:

0                           
0.72902 0                       
0.45426 0.54525 0                   
0.16167 0.34908 0.22247 0               
0.52886 0.54775 0.18069 0.28457 0           
0.93595 0.15927 0.8284  0.50287 0.82813 0       
0.25058 0.48914 0.13144 0.07898 0.16315 0.72607 0   
0.09604 0.80318 0.63657 0.27424 0.69319 0.91529 0.43121 0
我使用这个命令来合并几个文件文本,这是一个博客建议的

setwd("target_dir/")

file_list <- list.files()

for (file in file_list){

  # if the merged dataset doesn't exist, create it
  if (!exists("dataset")){
    dataset <- read.table(file, header=TRUE, sep="\t")
  }

  # if the merged dataset does exist, append to it
  if (exists("dataset")){
    temp_dataset <-read.table(file, header=TRUE, sep="\t")
    dataset<-rbind(dataset, temp_dataset)
    rm(temp_dataset)
  }

}
setwd(“target_dir/”)

文件列表如果您只想合并文件,那么就没有理由解析表或使用rbind。像这样的东西就足够了:

merge_files <- function(file_list, file) {
    invisible(lapply(
        file_list,
        function(f) cat(readLines(f), "", file=file, sep='\n', append=TRUE)
    ))
}
merge_files
setwd('target_dir/');

文件列表第一步可能是设置
header=FALSE
,因为现在您的第一个零被认为是头。你能解释一下为什么你想要一个空行吗?Heroka,做header=FALSE,我得到了我想要的。完美的我需要空白行,因为我正在输入一个输入文件文本来读取一个软件。该软件要求每个矩阵用一个空行与下列矩阵分开。你知道如何每8行添加一个空行吗?我想u/bgoldst给出的答案显示了如何将一个空行(或由NA组成的行)添加到数据帧中。好的,这是正确的,但我的最终结果实际上是一个带有,首先,所有的矩阵不是由空白行分隔的,然后是具有相同矩阵但由空白行分隔的数据文件。我不明白。您是否运行了包含
if(exists('dataset'))rm(dataset)
行的代码?是的,我完全以独占方式运行了您建议的代码。您得到的结果与输入文件内容重复?是的。这就是我要跑的。文件列表
setwd('target_dir/');
file_list <- list.files();
dataset <- data.frame(); ## initialize dataset to an empty data.frame
for (file in file_list) dataset <- rbind(if (nrow(dataset) > 0) rbind(dataset,NA),read.table(file,sep='\t',fill=T));
dataset;
##         V1      V2      V3      V4      V5      V6      V7 V8
## 1  0.00000      NA      NA      NA      NA      NA      NA NA
## 2  0.72902 0.00000      NA      NA      NA      NA      NA NA
## 3  0.45426 0.54525 0.00000      NA      NA      NA      NA NA
## 4  0.16167 0.34908 0.22247 0.00000      NA      NA      NA NA
## 5  0.52886 0.54775 0.18069 0.28457 0.00000      NA      NA NA
## 6  0.93595 0.15927 0.82840 0.50287 0.82813 0.00000      NA NA
## 7  0.25058 0.48914 0.13144 0.07898 0.16315 0.72607 0.00000 NA
## 8  0.09604 0.80318 0.63657 0.27424 0.69319 0.91529 0.43121  0
## 9       NA      NA      NA      NA      NA      NA      NA NA
## 10 0.00000      NA      NA      NA      NA      NA      NA NA
## 11 0.49272 0.00000      NA      NA      NA      NA      NA NA
## 12 0.94009 0.89679 0.00000      NA      NA      NA      NA NA
## 13 0.20863 0.86001 0.98594 0.00000      NA      NA      NA NA
## 14 0.11592 0.23149 0.60292 0.35263 0.00000      NA      NA NA
## 15 0.16404 0.81930 0.01534 0.41006 0.39640 0.00000      NA NA
## 16 0.38128 0.82583 0.18072 0.39924 0.73311 0.84009 0.00000 NA
## 17 0.91172 0.41074 0.83599 0.49375 0.74877 0.16469 0.78046  0