如何在保留文件名作为列表中的名称的同时导入所有tsv文件夹

时间:2017-10-30 21:10:46

标签: r

我知道这似乎是一个我可以研究的问题,但事实并非如此。

我想在特定目录中导入以.tsv结尾的所有文件。为此,我跑了:

setwd("directory")
dfs = list.files(pattern = "*.tsv")
raw <- lapply(dfs, read.table, sep = "\t")

然而,当我做名字(原始)时,我得到NULL。

如果我要做的话

names(raw) <- dfs

然后我指定的实际名称和名称不对齐。 如何将文件名放入列表时确保文件名保留为数据框名称?

由于

1 个答案:

答案 0 :(得分:0)

这是我想要做同样事情时使用的代码。它是一头牛,但对我来说效果很好。我只是把它从一个更长的脚本中拉出来,所以希望它适合你。

substrRight <- function(x, n){
substr(x, nchar(x)-n+1, nchar(x))
}
filenames=list.files(path=yourpath, full.names=TRUE)
filenameshort<-list.files(path=yourpath, full.names=FALSE)
endnames=NULL
for(i in 1:length(filenames)){endnames[i]=substrRight(filenames[[i]],3)}
filenames=filenames[ifelse(endnames=="tsv",TRUE,FALSE)]
filenameshort=filenameshort[ifelse(endnames=="tsv",TRUE,FALSE)]
numberfiles=length(filenames)
for(i in 1:numberfiles){assign(filenameshort[i],read.table(filenames[i]))}