在R中打印合并数据帧的每一行

时间:2014-07-04 09:39:10

标签: r

我正在尝试合并2个文本文件的内容并使用R打印合并的输出。我的代码如下:

setwd("C:\\Documents and Settings\\Administrator\\Desktop\\Test")
file_list <- list.files()


for (file in file_list){
  print(file)
  # create merged dataset if it does not exist
  if(!exists("dataset")){
    dataset <- read.table(file, header=TRUE, sep="\t")
  }
  # else, append to it
  if(exists("dataset")){
    temp_dataset <-read.table(file, header=TRUE, sep="\t")
    dataset <- rbind(dataset,temp_dataset)
    rm(temp_dataset)
  }
}
dataset

“Test”文件夹中有2个文本文件 - file1.txt和file2.txt。 file1.txt有ABC行和file2.txt DEF。但是,在运行脚本时,只打印ABC,而不是DEF。我无法弄清楚为什么。我是R脚本的新手,因此可能会出现基本错误。请帮忙。

2 个答案:

答案 0 :(得分:1)

或使用rbindlist

中的data.table
 library(data.table)
 file_list <- list.files() #2 rows per files
  rbindlist(lapply(file_list, fread))
 #  A  B  C
 # 1: 4 12 18
 # 2: 3  5  6
 # 3: 4 14 25
 # 4: 3 13 28

答案 1 :(得分:0)

您不需要该循环,您可以只浏览文件,然后将生成的data.frames列表转换为单个

file_list <- list.files()
table_list <- lapply(file_list, read.delim)
Single_table <- do.call(rbind, table_list)