gpt4 book ai didi

R中data.table中的行索引

转载 作者:行者123 更新时间:2023-12-02 08:27:36 25 4
gpt4 key购买 nike

如何在 R 中控制 data.table 中的行索引?

我想检查一行中的值是否与前一个匹配:

patient    produkt    output
1 Meg Initiation
1 Meg Continue
1 Gem Switch
2 Pol Initiation
2 Pol Continue
2 Pol Continue

输出列是输出,我希望(如果这样更容易,可以用数字替换,尽管 initiation=0, continue=1, switch=2)。

我找不到如何控制 data.table 中的索引,并且以下内容不起作用

test[ , switcher2 := identical(produkt, produkt[-1]),by=patient]

欢迎任何想法。但它必须在 data.table 中。

最佳答案

这是使用 devel version on GH 中新的 shift 函数的尝试

我在这里使用了 0:2 符号,因为它写起来更短,但你可以用单词代替

test[ , output2 := c(0, (2:1)[(produkt == shift(produkt)) + 1][-1]), by = patient]
# patient produkt output output2
# 1: 1 Meg Initiation 0
# 2: 1 Meg Continue 1
# 3: 1 Gem Switch 2
# 4: 2 Pol Initiation 0
# 5: 2 Pol Continue 1
# 6: 2 Pol Continue 1

我基本上总是从每个组的 0 开始,然后与每个组的先前值进行比较。如果 TRUE 则分配 1。如果 FALSE 则分配 2


如果你想用文字表达,这里是替代版本

test[ ,output3 := c("Initiation", c("Switch", "Continue")[(produkt == shift(produkt)) + 1][-1]), by = patient]

安装说明:

library(devtools)
install_github("Rdatatable/data.table", build_vignettes = FALSE)

关于R中data.table中的行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30707307/

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