2017-12-29 20 views
0

以下は私のデータフレームです。ハードコーディング列名なしの最後の列の条件に基づいてRのデータフレームをフィルタリングする

name m d1 d2 d3 d4 d5 
name1 m1 45 18 69 35 20 
name2 m2 34 19 16 25 0 
name3 m3 18 38 0 66 29 
name4 m4 52 9 58 84 0 
name5 m5 45 75 76 65 79 

私は以下のような結果を得たいと思います。基本的には、最後の列に0があるかどうかを確認してから、それらの行だけをフィルタリングします。ドル記号($)を使用して列名を直接使用することは望ましくありません。

name m d1 d2 d3 d4 d5 
name2 m2 34 19 16 25 0 
name4 m4 52 9 58 84 0 

答えて

0

これは動作しているようです。最後の列の特定の条件を満たすすべての行を選択します。私はこれより良い方法がなければならないと確信していますが、いくつかのオプションを試した後、これは私のために働いた。

my.df[my.df[,ncol(my.df)] == 0,] 
+0

私はそこに良い方法があるとは思っていませんが、これはかなり正直なRのようです。それはまさに私の答えが示唆しているものです。 – Dan

+0

はい、私はncolのことを認識していましたが、実際にはすべての行で正しい結果を得ることができなかったので、私は大括弧で囲んでいました。あなたのヒントのおかげで。 – 221B

+0

次回はあなたの質問にいくつかのコードを追加することをお勧めします。フィルタリングする方法を知っていたのに最後の列に対処する方法がわからなかったように私には聞こえました。私は上のあなたのコードは、Rでこれを行う慣用方法だと思う。 – Dan

関連する問題