如何使用R删除具有0值的行

vch*_*ngs 9 r bioinformatics

您正在使用基因表达矩阵,片段计数来计算差异表达的基因.我想知道如何删除值为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
Run Code Online (Sandbox Code Playgroud)

期望的输出

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
Run Code Online (Sandbox Code Playgroud)

截至目前我只想删除那些所有frag count列为0的行,如果在任何行中某些值为0而其他值为非零我想保持该行不变,因为您可以看到上面的示例.

请让我知道如何做到这一点.

bar*_*nus 15

df[apply(df[,-1], 1, function(x) !all(x==0)),]
Run Code Online (Sandbox Code Playgroud)

  • @bartektartanus,这些是离散计数,因为它们是基因表达值.它们不接受<0并且它们不接受浮点值.即便如此,这里也不需要"申请".你可以检查`df [rowSums(df [,-1]> 0)!= 0,]` (4认同)
  • 是.假设您在数据框中没有任何负值. (2认同)