web-dev-qa-db-ja.com

Rを使用して値が0の行を削除する方法

こんにちは、遺伝子発現のマトリックス、フラグメントカウントを使用して、差次的に発現する遺伝子を計算しています。値が0の行を削除する方法を知りたいのですが、データセットがコンパクトになり、この行列を使用して行うダウンストリーム分析でスプリアスの少ない結果が得られます。

入力

gene    ZPT.1   ZPT.0   ZPT.2   ZPT.3   PDGT.1  PDGT.0
XLOC_000001 3516    626 1277    770 4309    9030
XLOC_000002 342 82  185 72  835 1095
XLOC_000003 2000    361 867 438 454 687
XLOC_000004 143 30  67  37  90  236
XLOC_000005 0   0   0   0   0   0
XLOC_000006 0   0   0   0   0   0
XLOC_000007 0   0   0   0   1   3
XLOC_000008 0   0   0   0   0   0
XLOC_000009 0   0   0   0   0   0
XLOC_000010 7   1   5   3   0   1
XLOC_000011 63  10  19  15  92  228

必要な出力

gene    ZPT.1   ZPT.0   ZPT.2   ZPT.3   PDGT.1  PDGT.0
XLOC_000001 3516    626 1277    770 4309    9030
XLOC_000002 342 82  185 72  835 1095
XLOC_000003 2000    361 867 438 454 687
XLOC_000004 143 30  67  37  90  236
XLOC_000007 0   0   0   0   1   3
XLOC_000010 7   1   5   3   0   1
XLOC_000011 63  10  19  15  92  228

今のところ、すべてのフラグメントカウント列が0である行を削除したいのは、いずれかの行で一部の値が0で、他の値がゼロ以外の場合のみです。上記の例を見るとわかるように、その行はそのままにしておきます。

これを行う方法を教えてください。

11
vchris_ngs
df[apply(df[,-1], 1, function(x) !all(x==0)),]
16
bartektartanus