使用data.table(R)按列计算数值

时间:2017-03-23 16:31:36

标签: r data.table

DC<-data.table(l=c(0,0,1,4,5),d=c(1,2,0,0,1),y=c(0,1,0,1,7))

您好, 如何使用data.table获取列中特定值的计数? 我尝试了以下方法:

DC[, lapply(.SD, function(x) length(which(DC==0)))] 

但是这会返回整个数据集中的零计数,而不是按列索引。那么,我如何按列索引? 感谢

2 个答案:

答案 0 :(得分:0)

这个问题的表达方式不是很好,但是我认为@Sathish在评论中完美地回答了这个问题。

让我们在这里再写一次:对我来说colSums(DC == 0)是这个问题的答案。
所有功劳归@Sathish。非常有帮助。

答案 1 :(得分:-1)

如果我理解您的问题,您希望形成包含给定数据表列的值的频率计数。如果这是真的,那么假设你想在你提供的数据表的 d 列上这样做:

> DC <- data.table(l=c(0,0,1,4,5), d=c(1,2,0,0,1), y=c(0,1,0,1,7))
> DC[, .N, by = d]
   d N
1: 1 2
2: 2 1
3: 0 2

然后,如果您想要 d 中特定值的计数,您可以通过访问上述聚合的相应行来执行此操作,如下所示:

> DC[, .N, by = d][d == 0, N]
[1] 2
相关问题