2017-11-15 12 views
0

私は薬物の影響を受ける共通ターゲットを見つけようとしています(次の表のエントリ番号で示されています)。rの行で交差を見つける

IDARUBICIN <- c(1,5,12,13,18,27,NA,NA,NA,NA,NA,NA) 
EPIRUBICIN <- c(1,2,5,6,12,13,17,18,19,21,23,24) 
DAUNORUBICIN <- c(1,4,5,11,12,13,16,18,19,27,41,44) 
VINBLASTINE <- c(1,4,5,12,13,18,19,27,30,37,39,44) 
VINORELBINE <- c(1,5,12,13,18,19,27,41,44,NA,NA,NA) 
all <- rbind(IDARUBICIN,EPIRUBICIN,DAUNORUBICIN,VINBLASTINE,VINORELBINE) 
> all 
      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] 
IDARUBICIN  1 5 12 13 18 27 NA NA NA NA NA NA 
EPIRUBICIN  1 2 5 6 12 13 17 18 19 21 23 24 
DAUNORUBICIN 1 4 5 11 12 13 16 18 19 27 41 44 
VINBLASTINE  1 4 5 12 13 18 19 27 30 37 39 44 
VINORELBINE  1 5 12 13 18 19 27 41 44 NA NA NA 

Iは

ans <- Reduce(intersect, list(all[1,],all[2,],all[3,],all[4,],all[5,])) 
> ans 
[1] 1 5 12 13 18 

罰金を働いたが、私は30行(すなわち30薬物)を有するので、私はこの方法を使用することができない各行を使用して交差見つける試みました。 誰かが行のテーブルの交差を見つける方法を教えてもらえますか?それは私を必要とするため は、私はそれぞれの行を入力し、私の上記のソリューションを使用することはできませんし、私は

+1

期待どおりの結果が得られましたか? –

+0

結果は同じans < - 1 5 12 13 18にする必要がありますが、私は各行を入力できない別の方法をお勧めします –

答えて

1
library(tibble) 
library(purrr) 

t(all) %>% 
    as_tibble() %>% 
    reduce(intersect) 
4
Reduce(intersect, data.frame(t(all))) 
# [1] 1 5 12 13 18 

余分な依存関係が必要でないことをしたくありません!

+0

優秀!多くのありがとう@Gregor –

+0

@mr_swapこれがあなたの質問に答えたなら、それを答えとして受け入れてください。 [誰かが私の質問に答えたときにはどうすればいいですか?](https://stackoverflow.com/help/someone-answers) – G5W

関連する問題