【发布时间】:2020-01-15 20:55:34
【问题描述】:
我是 R 新手,我无法使用我找到的信息来完成这项工作。
我在一个文件夹中有许多 .txt 文件,每个文件都包含来自一个主题的数据。这些文件具有相同的列,但每个文件的行数不同。此外,列标题仅从第 9 行开始。我想要做的是
- 将 .txt 文件一次性导入 RStudio,同时跳过前 8 行,然后
- 将它们按列合并到一个数据帧中,这样最终的数据帧就是一个包含来自所有受试者的长格式数据的数据集。
我设法做到了 1(我认为)使用 easycsv 包和以下代码:
fread_folder(directory = "C:/Users/path/to/my/files",
extension = "TXT",
sep = "auto",
nrows = -1L,
header = "auto",
na.strings = "NA",
stringsAsFactors = FALSE,
verbose=getOption("datatable.verbose"),
skip = 8L,
drop = NULL,
colClasses = NULL,
integer64=getOption("datatable.integer64"),# default:"integer64"
dec = if (sep!=".") "." else ",",
check.names = FALSE,
encoding = "unknown",
quote = "\"",
strip.white = TRUE,
fill = FALSE,
blank.lines.skip = FALSE,
key = NULL,
Names=NULL,
prefix=NULL,
showProgress = interactive(),
data.table=FALSE
)
这行得通,但是现在我的问题是数据框以我的文件很长的路径命名,并且显然在 txt 文件之后(虽然没有 7)。因此它们非常长且笨拙,并且包含它们可能不应该包含的字符,例如空格。
所以现在我在将数据框合并为一个时遇到了麻烦,因为我不知道除了给它们赋予的默认名称之外,我不知道如何引用数据框,或者如何重命名它们,或者导入数据框时如何指定数据框的命名方式。
【问题讨论】:
-
如果能提供一些示例/示例数据,人们可以用来尝试帮助您,那就太好了。
-
没有别的东西,我可能会从
do.call(rbind, lapply(list.files(path=..., pattern=..., full.names=TRUE), read.csv, stringsAsFactors=FALSE))开始。
标签: r