【发布时间】:2017-04-23 05:55:49
【问题描述】:
我想我已经看到了我的问题的解决方案,但它们对我没有用。
我的目录中有很多 .txt 文件需要加载到 R 中。
如何上传这些文件,根据文件的最后 2 个字符命名每个文件?另一种方法是将它们全部上传为 rbind,而不需要将集合命名为某个特定的标题。
【问题讨论】:
标签: r text import read.table
我想我已经看到了我的问题的解决方案,但它们对我没有用。
我的目录中有很多 .txt 文件需要加载到 R 中。
如何上传这些文件,根据文件的最后 2 个字符命名每个文件?另一种方法是将它们全部上传为 rbind,而不需要将集合命名为某个特定的标题。
【问题讨论】:
标签: r text import read.table
类似的东西:
file.list <- list.files(pattern='*.txt')
df.list <- sapply(file.list, read.table, simplify = FALSE)
会起作用。现在您已将所有文件加载到一个列表中。
如果您希望将它们放在一个数据框中,例如:
library(dplyr)
df <- bind_rows(df.list, .id = "id")
现在您有了一个带有id-列的数据框,其中包含文件名。或者,您可以使用 data.table-package 中的rbindlist:
library(data.table)
df <- rbindlist(df.list, idcol = "id")
【讨论】:
sapply(file.list, read.table, sep = ';', simplify = FALSE)
fill = TRUE 时遇到错误。它说Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, : line 2 did not have 11 elements 如果我说,我得到Error in FUN(X[[i]], ...) : no lines available in input
skip.blank.lines = TRUE 可能会有所帮助。