如何计算列条目等于某个值的行

时间:2016-03-18 17:59:44

标签: r dataframe

我有一个数据框

    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

1 个答案:

答案 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值是否与列数相同。