我有一个带有142个制表符分隔文本文件的文件夹。 每个文件都有19个变量,然后是一些行(通常不超过30行,但会有所变化)。
我希望在R中自动完成这些文件的几个操作,但似乎无法通过我的代码获得想要的准确结果。 我对循环不熟悉,我从StackOverflow的以前的帖子中获取了两个代码部分,但似乎无法弄清如何组合它们的功能。
我该如何将文件名(如果可能,不包括 .txt 扩展名)作为变量添加到循环中?
我希望在R中自动完成这些文件的几个操作,但似乎无法通过我的代码获得想要的准确结果。 我对循环不熟悉,我从StackOverflow的以前的帖子中获取了两个代码部分,但似乎无法弄清如何组合它们的功能。
- 当将文件读入R时,我希望将文件名转换为变量,以便每行都具有识别文件名
- 将所有文件(带有文件名变量和无标题)连接到一个数据框中,其尺寸为Yx19,其中Y = 所有结果行数。
myFiles = list.files(path="~/Documents/ForR/", pattern="*.txt")
data <- lapply(myFiles, read.table, sep="\t", header=FALSE)
names(data) <- myFiles
for(i in myFiles)
data[[i]]$Source = i
do.call(rbind, data)
我能够创建我想要的19个变量的数据框,但是文件名并不存在:
files <- list.files(path="~/Documents/ForR/.", pattern=".txt")
DF <- NULL
for (f in files) {
dat <- read.csv(f, header=F, sep="\t", na.strings="", colClasses="character")
DF <- rbind(DF, dat)
}
我该如何将文件名(如果可能,不包括 .txt 扩展名)作为变量添加到循环中?