gpt4 book ai didi

r - 在data.table的组的第一行中分配值

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

我只想在data.table的组的第一行中分配这些值。

例如(简体):我的data.tableDT,具有以下内容

x v  
1 1
2 2
2 3
3 4
3 5
3 6
keyDTx
我想讲一组的每一行。

这工作正常: DT[, .SD[1], by=x]
x v  
1 1
2 2
3 4

现在,我只想将 v的那些值分配给 0

但这都不起作用:
DT[, .SD[1], by=x]$v <- 0  
DT[, .SD[1], by=x]$v := 0
DT[, .SD[1], by=x, v:=0]

我从程序包和提供的所有链接中搜索了R-help,但我无法使其正常运行。
我发现那里的注释说这行不通,但是没有任何示例/解决方案可以帮助我。

我很高兴有任何建议。

(我非常喜欢这个程序包,我不想回到data.frame ...使它工作的地方)

编辑:

我想要这样的结果:
x v  
1 0
2 0
2 3
3 0
3 5
3 6

这不起作用:
DT[, .SD[1], by=x] <- DT[, .SD[1], by=x][, v:=0]

最佳答案

Roland's solution的帮助下,您似乎可以执行以下操作。它只是将零与v的所有其他分组值(第一个除外)连接在一起。

DT[, v := c(0L, v[-1]), by = x]   ## must have the "L" after 0, as 0L

导致
DT
# x v
# 1: 1 0
# 2: 2 0
# 3: 2 3
# 4: 3 0
# 5: 3 5
# 6: 3 6

注意:中间部分的 j代码也可以是 v := c(integer(1), v[-1])

关于r - 在data.table的组的第一行中分配值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27006814/

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