gpt4 book ai didi

r - 如何只保留连续第一次出现的重复项?

转载 作者:行者123 更新时间:2023-12-02 06:46:55 25 4
gpt4 key购买 nike

我正在寻找一种方法来识别 data.table 中的行重复值并将其替换为 NA

以下答案可帮助我识别按行重复...

Removing duplicate values row-wise in R

...但我正在寻找一种方法来解决这些重复问题。

问题

(dt <- data.table(X = 1:10, Y = seq(1, 19, by = 2), Z = c(1, rep(3, 9))))
     X  Y Z
1: 1 1 1
2: 2 3 3
3: 3 5 3
4: 4 7 3
5: 5 9 3
6: 6 11 3
7: 7 13 3
8: 8 15 3
9: 9 17 3
10: 10 19 3

预期结果

     X   Y  Z
1: 1 NA NA
2: 2 3 NA
3: 3 5 NA
4: 4 7 3
5: 5 9 3
6: 6 11 3
7: 7 13 3
8: 8 15 3
9: 9 17 3
10: 10 19 3

请帮忙

最佳答案

这是一个data.table解决方案:

dt[, row := .I
][, melt(.SD, id.cols = "row", measure.vars = c("X", "Y", "Z"))
][, value := replace(value, duplicated(value), NA), by = row
][, dcast(.SD, row ~ variable)
][, !"row"]

关于r - 如何只保留连续第一次出现的重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57505586/

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