例:
这是一个名为的数据表dt:
> library(data.table)
> dt <- data.table(colA=rep(letters[1:3],each=3), colB=0:8)
> dt
colA colB
1: a 0
2: a 1
3: a 2
4: b 3
5: b 4
6: b 5
7: c 6
8: c 7
9: c 8
Run Code Online (Sandbox Code Playgroud)
我想知道:
对于colA等于"a",是否有colB> 2的值?
对于colA等于"b",是否有colB> 3的值?
对于colA等于"c",是否有colB> 4的值?
我创建了一个向量,arg用于保存组"a","b"和"c"的参数:
arg < - c(2,3,4)
谁能给我一个简单的方式传递arg到分组dt的colA?
这是我想要的结果:
colA V1
1: a FALSE
2: b TRUE
3: c TRUE
Run Code Online (Sandbox Code Playgroud)
这是我在这里的第一个问题,我试图让它变得简单.先感谢您.
对于它所操作的每个子组,[.data.table()将有关分组变量的当前值的信息存储在名为的变量中.BY.
如果您首先设置一个命名向量,将分组变量的级别映射到所需的参数值,您可以使用.BY它来索引,提取适当的值,如下所示:
arg <- setNames(c(2, 3, 4), c("a", "b", "c"))
arg
# a b c
# 2 3 4
dt[, any(colB > arg[unlist(.BY)]), by="colA"]
# colA V1
# 1: a FALSE
# 2: b TRUE
# 3: c TRUE
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
119 次 |
| 最近记录: |