在R中基于多个条件选择行,使用或代替AND

在R中基于多个条件选择行,使用或代替AND,r,multiple-columns,R,Multiple Columns,我有一个很大的数据集,我正试图根据两个独立列的值进行筛选。对于每一行,我都有一列显示它们的总计数(tot),还有一列显示看到该类型样本的总次数(tot.type) 我想根据(tot)和(tot.type)筛选数据,例如,(tot)或(tot.type)必须大于或等于2 我找到的所有基于多个值进行过滤的示例都使用“AND”,但在使用“AND”或“…”的地方什么都没有 在本例中,我将放弃B行,保留其余行 我已经根据一列或另一列将数据过滤成两个独立的数据集,然后将它们合并,但这可以在生成一个数据集的一

我有一个很大的数据集,我正试图根据两个独立列的值进行筛选。对于每一行,我都有一列显示它们的总计数(tot),还有一列显示看到该类型样本的总次数(tot.type)

我想根据(tot)和(tot.type)筛选数据,例如,(tot)或(tot.type)必须大于或等于2

我找到的所有基于多个值进行过滤的示例都使用“AND”,但在使用“AND”或“…”的地方什么都没有

在本例中,我将放弃B行,保留其余行

我已经根据一列或另一列将数据过滤成两个独立的数据集,然后将它们合并,但这可以在生成一个数据集的一行中完成,而不是在以后进行两个独立的数据集合并吗?

试试看

test[test$tot>=2 | test$tot.type>=2,]
(另外,我认为你的例子有错误,你想知道吗

test = data.frame(name,rx,ry,rz,type,tot,tot.type) 
而不是

test = data.frame(name,rx,ry,rz,tax,tot,N.tax)

您可以使用
行和
(“测试”基于@CactusWoman的数据)

还是另一种选择

  test[unique(which(test[c("tot","tot.type")] >= 2,
                           arr.ind = TRUE)[, 1]), ]

子集
正是为此而设计的:

subset(test, tot.type >= 2 | tot >= 2)

谢谢,这非常有效。很简单,但我自己很难找到答案。顺便说一句,这个“或”条件有一个替代公式:
subset(test,pmax(tot,tot.type)>=2)
一般来说,思考数学可能有助于简化计算。我是否错过了一些内部笑话?还有,@DavidArenburg,你应该获得一个有史以来最快编辑的徽章。感觉你几乎在我点击提交之前就编辑了它!
  test[unique(which(test[c("tot","tot.type")] >= 2,
                           arr.ind = TRUE)[, 1]), ]
subset(test, tot.type >= 2 | tot >= 2)