使用多个文本文件的内容在 R 中创建数据框
Creating a data frame in R with the content of multiple text files
我是 R 编程的新手,想知道如何获取 1,172 个文本文件的内容并创建一个数据框,其中每个文本文件的内容在数据框中的单独行中。
所以我想从拥有 1,172 个文本文档到拥有一个包含 1,172 行和 1 列的数据框,每一行都包含每个单独的文本文件的内容。因此,数据框的第五行将包含我输入 R 的列表中第五个文本文档的文本。
谢谢,
泰勒
# 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)
最后 2 个步骤可以合并为一个步骤,以避免创建额外的向量:
df <- data.frame( files= sapply(file.list,
FUN = function(x)readChar(x, file.info(x)$size)),
stringsAsFactors=FALSE)
我刚刚测试了这个,对我来说效果很好。
# 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)
我是 R 编程的新手,想知道如何获取 1,172 个文本文件的内容并创建一个数据框,其中每个文本文件的内容在数据框中的单独行中。
所以我想从拥有 1,172 个文本文档到拥有一个包含 1,172 行和 1 列的数据框,每一行都包含每个单独的文本文件的内容。因此,数据框的第五行将包含我输入 R 的列表中第五个文本文档的文本。
谢谢,
泰勒
# 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)
最后 2 个步骤可以合并为一个步骤,以避免创建额外的向量:
df <- data.frame( files= sapply(file.list,
FUN = function(x)readChar(x, file.info(x)$size)),
stringsAsFactors=FALSE)
我刚刚测试了这个,对我来说效果很好。
# 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)