2015-07-01 45 views
1

我有一個608,000行(主要7行如下所示)的主表。這些對應於基因組中的位置以及由Affymetrix(和dbSNP)給予它們的一個(或兩個標識符)。篩選器表排除行,如果它們包含第二個表的列中的值

Affy SNP ID dbSNP RS ID Chromosome Chromosome Start 
Affx-26018273 rs10056215 5 163542505 
Affx-26419011 rs10075407 5 2993645 
Affx-18203133 rs10196277 2 149188375 
Affx-8147963 rs1021996 12 51789617 
Affx-30004198 rs10266230 7 152738841 
Affx-26076228 rs10516050 5 168199301 
Affx-8225327 rs1059513 12 57489709 

然後我有另一個只有46行的表。如果第二個表格的46行中的一行中找到染色體和染色體起始值,我需要刪除主表中的行。這是第二張表格;它沒有Affymetrix/dbSNP標識符。

1 5641055 
1 8275761 
1 18628674 
1 119100982 
1 155954058 
1 213766407 
2 85414016 

如何過濾這些記錄?

回答

3

使用R,你可以從Tab1那些在最後一欄出現在46行的表Tab2的第二列與

Tab1 <- Tab1[-which(Tab1[,ncol(Tab1)] %in% Tab2[,2]),] 

希望這有助於號刪除所有行。

+0

這給了我共同的元素(即第二張表的全部行)。 我需要主表中沒有出現的全部行。無論如何要否定百分之%? – MolecularAnthropologist

+0

這是可行的,因爲我的排除列表恰好有非重複的基數。 在我的主表中,我有SNP位於相同的鹼基號但位於不同的染色體上(即1989年2期和1989年4月)。例如,如果我想刪除1989年的版本,這個代碼也會刪除1989年的其他染色體的位置。 – MolecularAnthropologist

+0

@leftisthominid我想我明白你的意思,但如果這個問題已經說明已經解決了,而且你已經意識到你的問題有另一個方面,那麼如果你去問一個新的問題,這對未來的讀者會非常有用包含該方面。它可以在那裏得到答案。這是更好的編輯這個問題和答案或在評論中有一個大的線程。 –

2

您可以使用dplyr程序包中的anti_join函數或該程序包的filter函數。

說你的data.frame被內置mtcars和你想從以下data.frame,即過濾掉缸值車,有4個或6缸:

dontuse <- data.frame(cyl = c(4,6), blah = c(1,2)) 

你可以運行:

anti_join(mtcars, dontuse) 

mtcars %>% 
    filter(! cyl %in% dontuse$cyl) 

這兩種retur的n行,其中cyl不是4或6.

mpg cyl disp hp drat wt qsec vs am gear carb 
1 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2 
2 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4 
3 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3 
4 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3 
5 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3 
6 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4 
7 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4 
8 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4 
9 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2 
10 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2 
11 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4 
12 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2 
13 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4 
14 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8 
相關問題