使用多个文本文件的内容在R中创建数据框

时间:2018-05-18 19:54:58

标签: r text-mining

我是R编程的新手,想知道如何获取1,172个文本文件的内容,并在数据框的各行中创建一个包含每个文本文件内容的数据框。

所以我想从拥有1,172个文本文档到拥有1,172行和1列的数据框,每行包含每个单独文本文件的内容。因此,数据框的第五行将包括我输入R的列表中的第五个文本文档中的文本。

谢谢,

泰勒

2 个答案:

答案 0 :(得分:2)

# get all  files with extension "txt" in the current directory
file.list <- list.files(path = ".", pattern="*.txt", full.names=TRUE)

# this creates a vector where each element contains one file
all.files <- sapply(file.list, FUN = function(x)readChar(x, file.info(x)$size))

# create a dataframe
df <- data.frame( files= all.files, stringsAsFactors=FALSE)

最后两个步骤可以合并为一个,以避免创建额外的向量:

df <- data.frame( files= sapply(file.list, 
                                FUN = function(x)readChar(x, file.info(x)$size)),
                  stringsAsFactors=FALSE)

答案 1 :(得分:0)

我刚测试了这个,它对我来说很好。

# set the working directory (where files are saved)
setwd("C:/your_path_here/")

file_names = list.files(getwd())
file_names = file_names[grepl(".TXT",file_names)]

# print file_names vector
file_names
files = lapply(file_names, read.csv, header=F, stringsAsFactors = F)
files = do.call(rbind,files)