如果找到 0 X 次,则删除数据框中的行
Remove rows in a dataframe if 0 is found X number of times
我有一个大数据框,看起来像下面的玩具示例。
Sample1 Sample2 Sample3 Sample4
Gene1 0 0 0 1
Gene2 1 0 0 1
Gene3 1 1 1 0
我想删除至少两个样本中等于 0 的所有基因。应该只保留 Gene3。
这个问题的答案很接近,但对于我的问题来说不够具体。
How to remove rows with 0 values using R
df[apply(df[,-1], 1, function(x) !all(x==0)),]
是否可以调整删除两次或多次为x==0的行?
这是单行本。请注意,rowSums
是用 C 编写的,速度很快。
df[!rowSums(df == 0) >= 2, , drop = FALSE]
两种解决方案:
df[-which(apply(df, 1, function(x) sum(x == 0) > 2)),]
或:
subset(df,!rowSums(df == 0) > 2)
我有一个大数据框,看起来像下面的玩具示例。
Sample1 Sample2 Sample3 Sample4
Gene1 0 0 0 1
Gene2 1 0 0 1
Gene3 1 1 1 0
我想删除至少两个样本中等于 0 的所有基因。应该只保留 Gene3。
这个问题的答案很接近,但对于我的问题来说不够具体。 How to remove rows with 0 values using R
df[apply(df[,-1], 1, function(x) !all(x==0)),]
是否可以调整删除两次或多次为x==0的行?
这是单行本。请注意,rowSums
是用 C 编写的,速度很快。
df[!rowSums(df == 0) >= 2, , drop = FALSE]
两种解决方案:
df[-which(apply(df, 1, function(x) sum(x == 0) > 2)),]
或:
subset(df,!rowSums(df == 0) > 2)