正在将不同文件夹中的.tsv文件读取到R环境中,并添加具有文件夹名称的列
我试图将一系列.tsv输出文件读入R环境中的同一数据帧中。但是,每个输出文件位于不同的子文件夹中,但具有相同的名称 Folder1中的file.tsv示例正在将不同文件夹中的.tsv文件读取到R环境中,并添加具有文件夹名称的列,r,csv,R,Csv,我试图将一系列.tsv输出文件读入R环境中的同一数据帧中。但是,每个输出文件位于不同的子文件夹中,但具有相同的名称 Folder1中的file.tsv示例 A B C 1 1 40 2 1 45 示例路径: A:/output/Folder1/file.tsv A:/output/Folder2/file.tsv A:/output/Folder3/file.tsv 文件夹名包含重要信息,我希望将其保存在聚合数据框中 例如: A B C folder
A B C
1 1 40
2 1 45
示例路径:
A:/output/Folder1/file.tsv
A:/output/Folder2/file.tsv
A:/output/Folder3/file.tsv
文件夹名包含重要信息,我希望将其保存在聚合数据框中
例如:
A B C folder
1 1 40 Folder1
2 1 45 Folder1
3 1 50 Folder2
4 1 55 Folder2
5 1 60 Folder3
6 1 65 Folder3
我找到了允许您从不同文件夹()读入和附加.tsv文件的答案,但我一直在研究如何添加一个名为文件夹的列。我有395个独特的文件夹,所以手工制作专栏我只想作为最后的手段
感谢您的宝贵见解 对我的。您需要执行以下步骤:
# load the needed packages
library(dplyr)
# create a list of the filenames with the full path
file.list <- list.files(pattern='*.tsv', recursive = TRUE, full.names = TRUE)
# read the files into a list
# using 'simplify=FALSE' makes sure the full paths are used as names in the list
df.list <- sapply(file.list, read.delim, simplify=FALSE)
# bind the dataframes in the list together with 'bind_rows' from the dplyr-package
# use to replace the full path name with the folder name
df <- bind_rows(df.list, .id = "folder") %>%
mutate(folder = sub('.*/(.*)/.*$', '\\1', folder))
#加载所需的包
图书馆(dplyr)
#创建具有完整路径的文件名列表
file.list非常感谢您的帮助!我对此所做的唯一更改是表示文件是以制表符分隔的,而不是以逗号分隔的,我是这样做的,`df.list@Charlotte确实有效。我发现我忘记将read.csv
更改为read.delim
(默认设置为sep=“\t”
)。