2014-10-09 51 views
-2

我有4個數據集(a,b,c,d),我想查找至少存在於兩個數據集中的字符串。我的數據是這樣的:在至少兩個數據集中發現字符串

head(a) 
[1] MLH3  PCSK7  PKMYT1 C14orf132 ANP32A POLQ  
1634 Levels: AARS ABAT ABCA8 ABCC9 ABCE1 ABHD3 ABHD5 ABL1 ABLIM1 ACADVL ACAN ACAT2 ACBD3  ACD ACLY ACOT2 . 
head(b) 
[1] ZCCHC10 DYNLL1 ERBB2IP C17orf75 BUB1B PLK1  
1311 Levels: AASDHPPT ABAT ABCA6 ABCG1 ABI1 ACAA1 ACACB ACO2 ACOX1 ACSL1 ACSL3 ACSL4  ACTR6 ADAMTS1 ADCYAP1R1 ... ZRANB2 
head(c) 
[1] UBE2Q1 PCSK9  ZDHHC11 GMDS  PPP2R3B C20orf117 
1247 Levels: ABCC2 ABCC5 ABCF1 ABCG1 ABHD14B ABHD5 ABL1 ABLIM2 ABTB2 ACAD8 ACD ACO1 ACOT9 ACSL3 ACSS2 ACTA2 ... ZYG11B 
head(d) 
[1] UBE2Q1 PCSK9  ZDHHC11 GMDS  PPP2R3B C20orf117 
1247 Levels: ABCC2 ABCC5 ABCF1 ABCG1 ABHD14B ABHD5 ABL1 ABLIM2 ABTB2 ACAD8 ACD ACO1 ACOT9 ACSL3 ACSS2 ACTA2 ... ZYG11B 

我想用intersect()功能中的R

+2

這個問題用'r'和'python'標記是很奇怪的。你是否打算你的解決方案在Python和R中都包含代碼? – 2014-10-09 13:50:22

回答

3

您就可在每個四個矢量的獨特元素的列表,並只返回重複的元素,這是出現在兩個或兩個以上的向量的元素:

all.vals <- c(unique(a), unique(b), unique(cc), unique(d)) 
unique(all.vals[duplicated(all.vals)]) 
# [1] "UBE2Q1" "PCSK9"  "ZDHHC11" "GMDS"  "PPP2R3B" "C20orf117" 

請注意,我改名爲你的第三個向量是cc所以你沒有覆蓋內置函數c

a <- c("MLH3", "PCSK7", "PKMYT1", "C14orf132", "ANP32A", "POLQ") 
b <- c("ZCCHC10", "DYNLL1", "ERBB2IP", "C17orf75", "BUB1B", "PLK1") 
cc <- c("UBE2Q1", "PCSK9", "ZDHHC11", "GMDS", "PPP2R3B", "C20orf117") 
d <- c("UBE2Q1", "PCSK9", "ZDHHC11", "GMDS", "PPP2R3B", "C20orf117") 
+0

這會給至少有兩個字符串? – BioMan 2014-10-09 13:50:27

+0

是的,這是兩個或更多的字符串。 – josliber 2014-10-09 13:51:06

相關問題