我有一个数据框
SYMBOL FinalCall.x FinalCall.y
A1BG 2 2
A1BG-AS 2 2
A1CF 2 1
A2LD1 1 1
A2M 1 1
A2ML1 2 2
如何计算两个列元素均等于1或等于2的数据帧中的行
更新:
输出
考虑到两列都包含1
,计数应为two
A2LD1 1 1
A2M 1 1
如果查找2
,则行数应为three
A1BG 2 2
A1BG-AS 2 2
A2ML1 2 2
答案 0 :(得分:2)
如评论中所示,您可以使用==
和rowSums
的组合,如下所示:
mydf[rowSums(mydf[-1] == 2) == 2, ]
# SYMBOL FinalCall.x FinalCall.y
# 1 A1BG 2 2
# 2 A1BG-AS 2 2
# 6 A2ML1 2 2
mydf[rowSums(mydf[-1] == 1) == 2, ]
# SYMBOL FinalCall.x FinalCall.y
# 4 A2LD1 1 1
# 5 A2M 1 1
基本思路是:
mydf[-1]
)== 1
,== 2
)rowSums
查看按行列出的TRUE
值是否与列数相同。