如果我有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"
才能发挥作用。
答案 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