如何使用等于零的行过滤基因表达数据集?

时间:2016-10-26 12:26:07

标签: r

我想删除表达式数据集中的行,这些行的值总共为零,我搜索并找到下面的代码我不确定它的工作原理是什么人能解释我[(3:col(df))]]==0)==col(df)-2, ]这个论点是什么装置

df[ !(df[rownames(df),[(3:col(df))]]==0)==col(df)-2, ]

1 个答案:

答案 0 :(得分:2)

这是一种笨重的代码,似乎有点乱码。

df[rowSums(df[,3:ncol(df)]==0)!=ncol(df)-2,]

将选择数据帧的行,其中列的最后一个(ncol-2)不是全为零。

  • df[,3:ncol(df)]选择除前两列以外的所有列
  • rowSums(.==0)计算每行中的零数
  • 对于零的数量不等于(剩余)列数的所有条目,
  • . != ncol(df)-2TRUE
  • df[.,]选择行

稍微简单的替代方案是

df[any(df[,-(1:2)]!=0),]