使用 fread 找不到文件

use*_*898 3 r data.table

我有一些基本代码,用于从共享相同文件格式的文件夹中读取多个文件。每个文本文件本身包含一两个句子;没有列、标题或类似的东西。

我最初使用 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 是文件夹中的第一个文件。谁能弄清楚这是为什么?路径文件夹是正确的(我把上面的那个改成了通用的东西放在这儿)所以我似乎看不出问题是什么。

Sve*_*ein 5

您必须指定文件的路径:

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)