gpt4 book ai didi

r - 如何在data.table分组中将不同的参数传递给每个组?

转载 作者:行者123 更新时间:2023-12-04 13:32:10 24 4
gpt4 key购买 nike

示例:

这是一个称为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

我想知道:

对于 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

这是我在这里的第一个问题,我试图使其变得简单。先感谢您。

最佳答案

对于操作的每个子组,[.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

关于r - 如何在data.table分组中将不同的参数传递给每个组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24132714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com