【问题标题】:Counting rows in data.table that meet a condition计算 data.table 中满足条件的行
【发布时间】:2015-03-21 04:23:25
【问题描述】:

我有下表

DT = data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=rep(4:6, 3))

我想统计有多少行满足条件(y==3 & v==5)。

我可以得到满足条件的行,所以我可以保存它们然后计算行数。但是,我知道使用 .N 可以更有效地完成它,我只是不知道如何。我的代码:

require(data.table)
keycols = c("y","v")
setkeyv(DT,keycols) 

DT[J(3,5)] # This gets the subset I am interested in

DT[ , `:=` (count = .N), by = J(3,5)] # This is one of the multiple unsuccessful ways I have been trying to count the rows. 

有人知道如何使最后一行工作吗?

【问题讨论】:

标签: r count data.table


【解决方案1】:

怎么样

DT[.(3,5), .N]
# [1] 3

## These are also equivalent
## DT[J(3,5), .N]
## DT[list(3,5), .N]

【讨论】:

    【解决方案2】:

    这应该可以工作

    DT[ y == 3 & v == 5,计数:= .N]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-02
      • 2020-08-29
      • 1970-01-01
      • 2021-02-05
      • 2013-10-14
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多