r - 合并多个文件时如何添加带有文件名的附加列?
问题描述
我正在合并几个文件(超过 5000 个)来做一些分析。下面的脚本将合并所有这些文件,但是,我以后不知道哪个是原始文件。我想做的是添加一个带有文件名的附加列。Row names = TRUE 只添加数字,但我想要确切的名称。
setwd("/path")
library(data.table)
temp2 = list.files(path= "path", pattern="*.txt")
myfiles2 = lapply(temp2, function(x)read.table(x, header=T, sep="\t", comment.char="#",na.strings=".",stringsAsFactors=FALSE,quote="",fill=FALSE))
merged_dataset <- data.table::rbindlist(myfiles2,fill=TRUE)
write.table(merged_dataset, file="merged_dataset.txt", sep="\t", quote=FALSE, row.names=FALSE)
我现在的输出:
chr pos ref alt...
1 1902906 T G...
1 1904677 A C...
2 1976878 C G...
3 1908790 C T...
1 1904566 T A...
2 1966789 T G...
我想要什么:
chr pos ref alt... phenotype
1 1902906 T G... filename.txt
1 1904677 A C... filename.txt
2 1976878 C G... filename.txt
3 1908790 C T... filename.txt
1 1904566 T A... filename2.txt
2 1966789 T G... filename2.txt
解决方案
我没试过,但我会试试
myfiles2 = lapply(temp2, function(x){a<- read.table(x, header=T, sep="\t", comment.char="#",na.strings=".",stringsAsFactors=FALSE,quote="",fill=FALSE); a$phenotype <- x})
推荐阅读
- c# - 如何计算数组的索引(结合重复)
- excel - Excel 中 VBA 中的代码是什么,它将选择宏最初启动的第一个单元格?
- javascript - 如何将 Apple 应用关联添加到 React App
- r - dplyr:按组查找第一个非零元素和最后一个非零元素和修剪向量
- python-3.x - Ursina 引擎,如何卸载玩家看不到的方块面
- laravel - 在 Laravel 上的 SQL 中选择多个项目的列
- python-3.x - 为什么我不能使用 Tensorflow "map_fn" d 来迭代批量张量?
- mysql - 如何在sql查询中从两个表中获取多个数据
- docker - 如何在本地开发中处理容器化 OIDC 服务器的 https?
- reactjs - 在 React 项目中使用 express 的服务器错误