gpt4 book ai didi

r - data.table 相当于 tidyr::complete with group_by with on and by 语法

转载 作者:行者123 更新时间:2023-12-04 22:26:57 26 4
gpt4 key购买 nike

问题:
data.tabletidyr 命令 与组 complete by 等价物是什么?
onby 对于 data.table 的关系是什么?

示例:

dt=data.table(a = c(1,1,2,2,3,3,4,4) , b = c(4,5,6,7,8,9,10,11) , c = c("x","x","x","x","y","y","y","y"))
show(dt)

a b c
1: 1 4 x
2: 1 5 x
3: 2 6 x
4: 2 7 x
5: 3 8 y
6: 3 9 y
7: 4 10 y
8: 4 11 y

目标是获得以下内容:
a  b c
1 4 x
1 5 x
1 6 x
1 7 x
2 4 x
2 5 x
2 6 x
2 7 x
3 8 y
3 9 y
3 10 y
3 11 y
4 8 y
4 9 y
4 10 y
4 11 y

所以大约是这样的:
setDT(dt)[CJ(a=a,b=b,unique=TRUE), on=.(a,b) , by = .(c)]

但它不起作用,并且 data.table 文档在语法的这方面很薄弱。

不足的解决方案:

以下 SO 帖子解决了类似的问题,但在此上下文中没有提供足够的解决方案。
  • data.table equivalent of complete/fill from tidyr(无组 by )
  • data.table equivalent of tidyr::complete()(无组 by )
  • data.table equivalent of tidyr::complete with group_by(特定于问题,实际上不适用于 by 命令)
  • 最佳答案

    试试这个:

    dt[, CJ(a = a, b = b, unique = TRUE), by = "c"]

    给予:
        c a  b
    1: x 1 4
    2: x 1 5
    3: x 1 6
    4: x 1 7
    5: x 2 4
    6: x 2 5
    7: x 2 6
    8: x 2 7
    9: y 3 8
    10: y 3 9
    11: y 3 10
    12: y 3 11
    13: y 4 8
    14: y 4 9
    15: y 4 10
    16: y 4 11

    关于r - data.table 相当于 tidyr::complete with group_by with on and by 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54579436/

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