我有一些基本代码,用于从共享相同文件格式的文件夹中读取多个文件。每个文本文件本身包含一两个句子;没有列、标题或类似的东西。
我最初使用 read.table 来做到这一点,但在进行了一些阅读之后,特别是查看了最近的这篇文章后,我想我会看看我是否可以使用 fread 使事情变得更快一点。
library(data.table)
files <- list.files(path = "C:/Documents", pattern = "*.txt")
readdata <- function(x)
{
mydata <- fread(x, sep=" ")
return(mydata)
}
all.files <- lapply(files, readdata)
final.data <- rbindlist(all.files)
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,出现以下错误:
Error in fread(x, sep = " ") : File not found: 1.txt
Run Code Online (Sandbox Code Playgroud)
1.txt 是文件夹中的第一个文件。谁能弄清楚这是为什么?路径文件夹是正确的(我把上面的那个改成了通用的东西放在这儿)所以我似乎看不出问题是什么。
您必须指定文件的路径:
path <- "C:/Documents"
readdata <- function(x)
{
f <- file.path(path, x)
mydata <- fread(f, sep=" ")
return(mydata)
}
Run Code Online (Sandbox Code Playgroud)
另一种选择是list.files
与参数一起使用full.names = TRUE
。这将返回文件名及其路径。
files <- list.files(path = "C:/Documents", pattern = "*.txt", full.names = TRUE)
readdata <- function(x)
{
mydata <- fread(x, sep=" ")
return(mydata)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5742 次 |
最近记录: |