我正在尝试合并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脚本的新手,因此可能会出现基本错误。请帮忙。
答案 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)