2015-09-01 124 views
0

我有兩個文件,我想將來自File2的logFC與File1中具有相似ID且與File2匹配的那些miRNA合併。 F.ex所有帶有ID1的miRNA應根據File2中的匹配字符串進行組合。在匹配字符串上合併值

File1: 

ID miRNA 
ID1 hsa-miR-512-1 
ID1 hsa-miR-512-2 
ID1 hsa-miR-1323 
ID1 hsa-miR-498 
ID1 hsa-miR-520e 
ID1 hsa-miR-515-1 
ID1 hsa-miR-519e 
ID1 hsa-miR-520f 
ID2 hsa-miR-495 
ID2 hsa-miR-376c 
ID2 hsa-miR-376a-2 
ID2 hsa-miR-654 
ID2 hsa-miR-376b 
ID2 hsa-miR-376a-1 
ID2 hsa-miR-300 
ID2 hsa-miR-1185-1 
ID2 hsa-miR-1185-2 
ID24 hsa-miR-1179 
ID24 hsa-miR-7-2 
ID24 hsa-miR-3677 
ID25 hsa-miR-940 
ID25 hsa-miR-4717 

File2: 
miRNA   logFC 
hsa-miR-512-1 13 
hsa-miR-512-2 123 
hsa-miR-1323 53 
hsa-miR-498  4.2 
hsa-miR-520e 12 
hsa-miR-515-1 1 
hsa-miR-519e 56 
hsa-miR-520f 113 
hsa-miR-495  11 
hsa-miR-376c 11 
hsa-miR-376a-2 113 
hsa-miR-654  13 
hsa-miR-376b 123 
hsa-miR-376a-1 567 
hsa-miR-300  757 
hsa-miR-1185-1 6 
hsa-miR-1185-2 35 
hsa-miR-1179 2 
hsa-miR-7-2  2 
hsa-miR-3677 1 
hsa-miR-940  134 
hsa-miR-4717 566 


Output: 

ID1  Average logFC for all ID1 miRNA 
ID2  Average logFC for all ID2 miRNA 
... 
+0

你已經試過了什麼?看看'merge()'。 – Heroka

+0

謝謝,我已經看過合併和 – user2300940

+0

類似或相同的ID? –

回答

1

由於@Heroka在開頭提到這是一個merge工作(這意味着在右側鍵列加入你的表)。我使用的是dplyr方法,但是還有很多其他的方法/命令來做到這一點:

File1 = read.table(text="ID miRNA 
ID1 hsa-miR-512-1 
ID1 hsa-miR-512-2 
ID1 hsa-miR-1323 
ID1 hsa-miR-498 
ID1 hsa-miR-520e 
ID1 hsa-miR-515-1 
ID1 hsa-miR-519e 
ID1 hsa-miR-520f 
ID2 hsa-miR-495 
ID2 hsa-miR-376c 
ID2 hsa-miR-376a-2 
ID2 hsa-miR-654 
ID2 hsa-miR-376b 
ID2 hsa-miR-376a-1 
ID2 hsa-miR-300 
ID2 hsa-miR-1185-1 
ID2 hsa-miR-1185-2 
ID24 hsa-miR-1179 
ID24 hsa-miR-7-2 
ID24 hsa-miR-3677 
ID25 hsa-miR-940 
ID25 hsa-miR-4717", header=T) 

File2 = read.table(text="miRNA   logFC 
hsa-miR-512-1 13 
hsa-miR-512-2 123 
hsa-miR-1323 53 
hsa-miR-498  4.2 
hsa-miR-520e 12 
hsa-miR-515-1 1 
hsa-miR-519e 56 
hsa-miR-520f 113 
hsa-miR-495  11 
hsa-miR-376c 11 
hsa-miR-376a-2 113 
hsa-miR-654  13 
hsa-miR-376b 123 
hsa-miR-376a-1 567 
hsa-miR-300  757 
hsa-miR-1185-1 6 
hsa-miR-1185-2 35 
hsa-miR-1179 2 
hsa-miR-7-2  2 
hsa-miR-3677 1 
hsa-miR-940  134 
hsa-miR-4717 566", header=T) 


library(dplyr) 

File1 %>% 
    inner_join(File2, by="miRNA") %>%  # join your datasets based on miRNA column 
    group_by(ID) %>%      # group by ID 
    summarise(AvgLogFC = mean(logFC))  # calculate average values 

#  ID AvgLogFC 
# 1 ID1 46.900000 
# 2 ID2 181.777778 
# 3 ID24 1.666667 
# 4 ID25 350.000000 

請注意,我使用inner_join即假設File1中所有miRNA值file2中存在。