r - 如何在一行中只保留第一次出现的重复项?
问题描述
data.table
我正在寻找一种方法来识别和替换 a with中的逐行重复值NA
。
以下答案可帮助我识别逐行重复...
...但我正在寻找一种解决这些重复项的方法。
问题
(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"]
推荐阅读
- vuetify.js - vuetify v-hover 与 Animation on Scroll (aos) 冲突
- amazon-web-services - 第一个实例启动后多少分钟 Auto Scaling 会接受另一个扩展活动请求?
- machine-learning - 如果我们在管道中包含转换器,来自 scikit-learn 的“cross_val_score”和“GridsearchCV”的 k 折交叉验证分数是否存在偏差?
- getgauge - 无法使用 npm 安装 Gauge
- r - 如何在 R 中按块从数据库中读取数据?
- sql - 使用 XSLT 函数将日期转换为 SQL 格式
- tcl - 为什么在构建 TCL 源时忽略头文件更改?
- r - 使用每月数据为特定小时范围内的所有行分配值
- go - Logrus:如何打印控制台日志
- python - 为什么 selenium 不能从我的 xpath 中找到这个看似简单的元素?