【发布时间】:2021-08-19 18:07:14
【问题描述】:
如果有一个条目 >= 10,我会尝试在数据表中将该 ID 的所有其他值设置为零以用于该特定年份。如果没有大于或等于 10 的值,则所有值保持不变。如果有多个大于 10 的值,则只保留最大的条目。
这里有一个示例数据表:
library(data.table)
data = data.table(
ID = c("a1", "a2", "a2", "a1", "a2", "a1", "a1"),
"2018" = c(3,5,11,3,9,22,6),
"2019" = c(3,5,6,21,1,4,0),
"2020" = c(0,4,13,9,16,7,9),
"2021" = c(4,0,3,8,5,4,6))
我尝试使用 for 循环,但无法使用二维。 期望的结果如下所示:
solution <- data.table(
ID = c("a1", "a2", "a2", "a1", "a2", "a1", "a1"),
"2018" = c(0,0,11,0,0,22,0),
"2019" = c(0,5,6,21,1,0,0),
"2020" = c(0,0,0,9,16,7,9),
"2021" = c(4,0,3,8,5,4,6))
【问题讨论】:
-
是否按'ID'分组
-
不需要,非常感谢您的回答:)
标签: r data.table