【发布时间】:2020-07-16 02:24:37
【问题描述】:
这是之前问过的 question 的扩展。
在包含公司和类别值的数据库中,我想计算这个: 如果一家公司进入了一个以前没有参与过的新类别三(3)年(不包括同一年),那么该条目将被标记为“NEW”,否则将被标记为“OLD”。
在以下数据集中:
df <- data.table(year=c(1979,1979,1980,1980,1981,1981,1982,1983,1983,1984,1984),
category = c("A","A","B","C","A","D","F","F","C","A","B"))
期望的结果是:
year category Newness
1: 1979 A NEW
2: 1979 A NEW
3: 1980 B NEW
4: 1980 C NEW
5: 1981 A NEW
6: 1981 D NEW
7: 1982 F NEW
8: 1983 F OLD
9: 1983 C OLD
10: 1984 A OLD
11: 1984 B NEW
非常感谢。
【问题讨论】:
-
感谢您告诉我。编辑了数据框。
-
第 5 行应该是旧的而不是新的吗?
-
@chinsoon12 它会在旧示例下。随着更新的df,该公司在过去三年(1981、1982、1983)没有涉及B类,因此是NEW。不过,您的代码工作得很好。
标签: r group-by data.table rows