【发布时间】:2020-06-13 02:26:06
【问题描述】:
我有一个数据集,其中包含涉及某类产品的公司。 数据集如下所示:
df <- data.table(year=c(1979,1979,1980,1980,1980,1981,1981,1982,1982,1982,1982),
category = c("A","A","B","C","A","D","C","F","F","A","B"))
我想创建一个新变量如下: 如果一家公司进入了一个以前没有参与过的新类别以前几年(不是同一年),那么该条目将被标记为“NEW”,否则将被标记为“OLD ”。
因此,期望的结果将是:
year category Newness
1: 1979 A NEW
2: 1979 A NEW
3: 1980 B NEW
4: 1980 C NEW
5: 1980 A OLD
6: 1981 D NEW
7: 1981 C OLD
8: 1982 F NEW
9: 1982 F NEW
10: 1982 A OLD
11: 1982 B OLD
我倾向于使用 data.table,因为我有超过 150 万个观察值,并且希望能够通过按公司 ID 分组来复制解决方案。
任何帮助将不胜感激,并提前感谢您。
【问题讨论】:
标签: r group-by data.table grouping