在一个data.table中对不同数据中的每个类别的变量进行计数

时间:2018-07-05 22:07:11

标签: r dataframe data.table

如果我有data.table:

  a <- data.table("NAME" = c("A", "B", "A"),  
                  "PASS_FAIL" = c("F", "P", "P"))

还有一个data.frame(这是一个频率表,用于表NAME中每个唯一a的出现次数:

b <- aggregate(data.frame(Count = a$NAME), list(Name = a$NAME), length)

所以b看起来像这样:

> b
  Name Count
1    A     2
2    B     1

现在如何在表b中添加新列,该列计算每个唯一NAME的F数量?预期输出:

> b
  Name    Count    FailCount
1 A       2        1
2 B       1        0

我知道我需要一些a$PASS_FAIL == "F"才能发挥作用。

1 个答案:

答案 0 :(得分:1)

使用data.table(按“ NAME”分组),获取失败案例数中逻辑表达式(.N的{​​{1}}和sum的行数

PASS_FAIL == "F"

如果我们需要一种library(data.table) a[, .(Count = .N, FailCount = sum(PASS_FAIL=="F")), NAME] # NAME Count FailCount #1: A 2 1 #2: B 1 0 方法

base R