2016-08-24 3 views
1

나는 약 30 개의 데이터 테이블을 가지고 있습니다. 이제 일부 테이블의 첫 번째 열에 겹침 부분을 찾아 추출하고 싶습니다. 결과는 두 개 이상의 데이터 테이블에서 첫 번째 열에 겹치는 테이블이어야합니다.다른 데이터 테이블에서 겹침을 찾습니다.

표 :

Gen   Estimate Std. Error p-Wert 
1007_s_at -0.159699 0.07834  0.04265 
1053_at  -0.174647 0.064535  0.0098976 
121_at  0.1765678 0.05116854 0.0000657 

표 2 :

Gen  Estimate  Std. Error p-Wert 
1494_f_at 0.2222467 0.0553653 0.0075838 
121_at  0.873683  0.00898737 0.0088378 
1316_at 0.098764  0.098456  0.048899 
1007_s_at 0.89723  0.5675389 0.00007865 

표 3 : 여기에 일례이기

Gen  Estimate  Std.Error p-Wert 
1007_s_at 0.0864567 0.8931278 0.005542 
121_at  0.2378590 0.0236586 0.00005667 
1494_f_at 0.4597023 0.9875357 0.0091234 

는 결과가 같아야

Gen  
1007_s_at 
121_at 
01,235,

foverlaps 함수를 사용해 보았습니다.하지만 이는 두 개의 데이터 테이블에 대한 것입니다. 그래서 그것은 작동하지 않았다.

누군가 도와 주길 바랍니다. 감사합니다.

+0

좋은 질문을. **하지만 **,이 질문을 게시하기 전에 아무 것도 시도하지 않았습니까? 코드 공유해 주시겠습니까? –

+0

StackOverflow에 오신 것을 환영합니다. 명확한 예를 들어 질문하는 것이 좋습니다. 불행히도, 도움을 요청하기 전에 지금까지 시도한 것을 보여줘야합니다. –

답변

1

나는 이것을 위해 당신이 설정 작업을 사용하고 싶다고 생각한다.

Set Operations

이 작동합니다 :

dat1 <- data.frame(gen = c("aaaaa", "1494_f_at", "1111", "!!!!"), stringsAsFactors = FALSE) 

dat2 <- data.frame(gen = c("1494_f_at", "cccccc", "!!!!","999"), stringsAsFactors = FALSE) 

dat3 <- data.frame(gen = c("!!!!","1494_f_at", "999", "dddddd"), stringsAsFactors = FALSE) 

intersect(intersect(dat1[,1], dat2[,1]), dat3[,1]) 
+0

그러나 3 개 이상의 데이터 프레임이있을 때 너무 중첩됩니다. 루프가 가능합니까? –

+0

이 경우 http : // stackoverflow에서 Reduce (function (x, y) merge (x, y, all = TRUE), list (df1, df2, df3))와 같은 작업을 수행해야합니다. com/questions/14096814/r-merging-a-lot-of-data-frames –