2017-12-12 25 views
-1

私はプログラミングが新しく、質問があります。 複数の行を持つファイルがあり、同じ名前のXとYを持つ行を抽出したいとします。しかし、私の問題は、いくつかの名前にはマルチペットXとYがあり、少なくとも1つのXと複数のYを持つ必要があるということです。データフレームからデータを抽出する

私のデータは次のようになります。

1 1572876 1636342 2 4 X 63466 1 1590786 1594063 RP11-345P4.7 9 NA NA .  
1 1572876 1636342 2 4 Y 63466 1 1603429 1604850 RP11-345P4.7 9 NA NA . 

しかし、私の実際のデータでそれがRP11-345P4.7つ以上の行を持つことになります

- - - - - An.Pos - - - Name - - - - - 

1 678731 680107 2 8 X 1376 1 677193 685396 RP11-206L10.3 12 NA NA .  
1 1572876 1636342 2 4 X 63466 1 1590786 1594063 RP11-345P4.7 9 NA NA .  
1 1572876 1636342 2 4 Y 63466 1 1603429 1604850 RP11-345P4.7 9 NA NA .  
1 1572876 1636342 2 4 X 63466 1 1631369 1633249 MMP23A 9 NA NA .  

私は何を取得したいことはあります。 少なくとも1つのXと1 Yを持つ名前が必要です。

PSです。 RやBash、あるいは別の言語でそれをする方が簡単かどうかもわかりません。

+0

は、再現性の例を与えることを試みます。ここにあなたの列には名前がありません。 – denis

答えて

0

まず、Name列でグループ化し、次にAn.Pos列に少なくとも1つのXと1つのYを含むすべての行をフィルタ処理します。

あなたはdplyr(とあなたのデータフレームがdfに保存されていると仮定)を使用する場合、それは次のようになります。

dplyr::group_by(df, Name) %>% 
dplyr::filter(2==n_distinct(An.Pos)) %>% 
dplyr::ungroup() 
+0

それは働いて、ありがとう! – rolodu

関連する問題