如何从一个文件中收集同一组的ID并将其写入第二个文件?

时间:2014-05-06 09:05:03

标签: r

我有两个大的txt文件 第一个文件包含两列: ID 。每个组都有不同的ID。我想收集文件A中每个组的所有ID,并将它们添加到文件B中 我尝试使用aggregate()merge()。但我不确定它是否正常工作。
有人能为此提供良好的解决方案吗?

我的文件和所需输出的结构如下:

File A
    Group       ID
    A/B/C       F1
    A/B/C       F5
    A/B/C       F7
    A/B/C       F6
    A/B/C       F8
    E/F         R1
    E/F         R2
    E/F         R4
    .
    .
    .
    .



File B
    Group           P  
    A/B/C           ls
    A/B/C           pr
    E/F             sh
    E/F             sh
    E/F             gn
    .
    .
    .


Desired output:

File B   
    Group     ID               P       
    A/B/C    F1/F5/F7/F6/F8    ls
    A/B/C    F1/F5/F7/F6/F8    pr
    E/F      R1/R2/R4          sh
    E/F      R1/R2/R4          sh
    E/F      R1/R2/R4          gn
    .
    .
    .

1 个答案:

答案 0 :(得分:2)

您可以使用dplyr这样的库

df.A <- read.table(text="Group ID
A/B/C F1
A/B/C F5
A/B/C F7
A/B/C F6
A/B/C F8
E/F R1
E/F R2
E/F R4", header=T, sep=" ")

df.B <- read.table(text="Group P
A/B/C ls
A/B/C pr
E/F sh
E/F sh
E/F gn", header=T, sep=" ")

library(dplyr)

tmp <- df.A %.% group_by(Group) %.% summarise(ID=paste(ID, collapse="/"))
merge(tmp, df.B)