library(data.table)
DT1 <- data.table(num = 1:6, group = c("A", "B", "B", "B", "A", "C"))
DT2 <- data.table(group = c("A", "B", "C"))
我想要添加一列popular
到DT2
中,并且当DT2$group
至少出现两次在DT1$group
中时,其值为TRUE
。因此,在上面的例子中,DT2
应该是
group popular
1: A TRUE
2: B TRUE
3: C FALSE
有什么高效的方法可以实现这个目标?
更新的示例: DT2
可能包含比 DT1
更多的组,因此这是一个更新的示例:
DT1 <- data.table(num = 1:6, group = c("A", "B", "B", "B", "A", "C"))
DT2 <- data.table(group = c("A", "B", "C", "D"))
期望的输出结果应该是:
group popular
1: A TRUE
2: B TRUE
3: C FALSE
4: D FALSE
DT2
是否始终具有与DT1
相同的唯一group
?如果是,则简单地使用DT1[, .(popular = .N >= 2L), by=group]
。 - Aruntable(factor(DT1$group, levels = unique(DT2$group))) >= 2
- rawr