繁体   English   中英

将各种 .txt 和 .html 文件连接到 R 中的一个 .txt 文件

[英]Concatenate various .txt and .html files to one .txt file in R

我正在尝试编写一个脚本,该脚本自动将特定文件夹中的所有文件自动连接到一个 .txt 文件中,但我遇到了问题,因为我试图在将它们写入一个 txt 文件之前将它们合并到一个大数据框中,并且我因为列名不匹配而出现错误,所以我使用了 smartbind,但我没有收到“双行名称”的错误。

这是我的代码:

library(gtools)

dir<-"/Users/max/Desktop/NISAT_All/Regions"

subdir_list<-list.dirs(dir, recursive=F) 
subdir_list<-list.dirs(subdir_list,  recursive=F)
as.matrix(subdir_list)
subdirs_General <- subdir_list[ grepl("General", subdir_list) ]
as.matrix(subdirs_General)
subdir_list <- subdir_list[ !grepl("General", subdir_list) ]
subdir_list<-list.dirs(subdir_list,  recursive=F)
as.matrix(subdir_list)


for (subdir in subdir_list){

  setwd(subdir)

  subdir <-list.files(subdir, recursive=T)
  files <- subdir[ grepl("Armed Groups and Small Guns", subdir) ]
  files <- c(files, subdir[ grepl("Arms Embargoes", subdir) ])
  files <- c(files, subdir[ grepl("Black Market", subdir) ])
  files <- c(files, subdir[ grepl("Brokering", subdir) ])
  files <- c(files, subdir[ grepl("Landmines", subdir) ])
  files <- c(files, subdir[ grepl("MANPADS", subdir) ])
  files <- c(files, subdir[ grepl("Production", subdir) ])
  files <- c(files, subdir[ grepl("Stockpile Security and Destruction", subdir) ])
  files <- c(files, subdir[ grepl("UN Processes", subdir) ])
  files <- c(files, subdir[ grepl("United Nations", subdir) ])
  files <- c(files, subdir[ grepl("Weapons Collection and Amnesties", subdir) ])

  dataframe <- data.frame()

  for (file in files){

      df_temp <- read.delim(file)
      dataframe <- smartbind(dataframe, df_temp, sep="\n")

  }
  #then write your final file
  write.table(dataframe,"MergedFiles.txt",sep="\n", row.names = F, eol = "\r")
  rm(dataframe)

}

在图片上你可以看到文件通常的样子,我只是想把它们合并成一个

任何人都可以帮忙吗?

这就是文件通常的样子

这是最新的错误信息

假设我有两个文本文件要合并:

测试1.txt

I'm not a pheasant plucker, I'm a pheasant plucker's son

测试2.txt

and I'm only plucking pheasants til the pheasant plucker comes.

我只是指定要合并的文件的名称,并创建一个包含合并内容的空变量:

files_to_combine <- c(path.expand("~/test1.txt"), path.expand("~/test2.txt"))
combined <- ""

现在我只使用readLines()来获取内容并将它们粘贴在一起。

for (i in seq_along(files_to_combine))
{
  combined <- paste0(combined,  readLines(files_to_combine[i], "\n")
}

最后,我将结果写回磁盘,如下所示:

writeLines(combined, path.expand("~/test3.txt"))

现在在我的主目录中,我有这个文件:

测试3.txt

I'm not a pheasant plucker, I'm a pheasant plucker's son
and I'm only plucking pheasants til the pheasant plucker comes.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM