我有6个csv文件,我想根据第1列中的字符串标识进行合并.我想在第2列中保留每个文件的Count-number.以下示例:
文件1:
TAGCTTATCAGACTGATGTTGAC 88902
TAGCACCATTTGAAATCAGTGTT 62017
TAGCTTATCAGACTGATGTTGA 25339
GCATGGGTGGTTCAGTGGTAGAATTCTC 18477
TAGCACCATCTGAAATCGGTTA 12522
CACGGTCCCCCGCGAGGGGGGCCCGGG 11814
TAAAGTGCTGACAGTGCAGAT 10870
GCGCCCTTAGCTCAGTTGGATAGAGCAA 10353
TGTGCAAATCTATGCAAAACTGA 8689
Run Code Online (Sandbox Code Playgroud)
文件2:
TAGCTTATCAGACTGATGTTGAC 290460
TAGCTTATCAGACTGATGTTGA 85960
GCATGGGTGGTTCAGTGGTAGAATTCTC 33273
TAGCACCATTTGAAATCAGTGTT 25284
TAGCACCATCTGAAATCGGTTA 21199
AGTTGGTTAGAGCAACCGG 18608
AGCAGCATTGTACAGGGCTATGA 18449
TGTGCAAATCCATGCAAAACTGA 17968
TAGCTTATCAGACTGATGTTGACA 15530
CACGGTCCCCCGCGAGGGGGGCCCGGG 13258
TGTGCAAATCTATGCAAAACTGA 12847
CCTAAGGCAGGACTGATGACTGGGGTG 12725
GCCGCCGGTGAAATACCACTACTC 11971
TGAGGTAGTAGGTTGTATAGTT 10398
Run Code Online (Sandbox Code Playgroud)
文件3:
TAGCTTATCAGACTGATGTTGAC 181279
TAGCTTATCAGACTGATGTTGA 78661
AGTTGGTTAGAGCAACCGG 24225
CACGGTCCCCCGCGAGGGGGGCCCGGG 22252
AAAAGCTGGGTTGAGAGGGCGA 21334
TGTGCAAATCCATGCAAAACTGA 18541
CGGCGGGTGTTGACGCGATG 17818
TAGCACCATCTGAAATCGGTTA 15642
CCTAAGGCAGGACTGATGACTGGGGTG 14003
TAGCTTATCAGACTGATGTTGACA 12549
TAGCACCATTTGAAATCAGTGTT 12515
AGCAGCATTGTACAGGGCTATGA 12205
Run Code Online (Sandbox Code Playgroud)
输出:
ID file1 file2 file3
TAGCTTATCAGACTGATGTTGAC 88902 290460 181279
....
....
Run Code Online (Sandbox Code Playgroud)
保留所有data.frames内容list并使用Reduce/merge.假设的名称first列是ID在所有数据集和第二列名是file1,file2等.
Reduce(function(...) merge(..., by='ID'), list(df1, df2, df3))
# ID file1 file2 file3
#1 CACGGTCCCCCGCGAGGGGGGCCCGGG 11814 13258 22252
#2 TAGCACCATCTGAAATCGGTTA 12522 21199 15642
#3 TAGCACCATTTGAAATCAGTGTT 62017 25284 12515
#4 TAGCTTATCAGACTGATGTTGA 25339 85960 78661
#5 TAGCTTATCAGACTGATGTTGAC 88902 290460 181279
Run Code Online (Sandbox Code Playgroud)
如果没有headers,你可以使用阅读read.table/read.csv与header=FALSE.然后,列名应为V1,V2对所有的数据集.我也会在列表中阅读它lapply.假设你已经单独阅读过,
setNames(Reduce(function(...) merge(..., by='V1'),
list(df1, df2, df3)),c('ID', paste0('file',1:3)) )
Run Code Online (Sandbox Code Playgroud)
如果你想读的所有文件list从working directory
files <- list.files(pattern='^file\\d+.csv')
lst <- lapply(files, function(x) read.csv(x,header=FALSE))
setNames(Reduce(function(...) merge(..., by='V1'),
lst),c('ID', paste0('file',seq_along(files))) )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
122 次 |
| 最近记录: |