我有一个数据集,其中的列具有分号分隔值,代表这样的国家:
row countries weights
1: 22;3 1.254
2: 5 0.54
3: 6;8;123 2.65
4: 16 0.35
5: 77;21;1 0.98
6: 89 1.74
etc.
使用data.tables,我可以按照这样的唯一值求和:
dt[!is.na(countries),.(sum(weights)), by= countries]
这给了我这个:
countries V1
1: 2 791.243
2: 230 10.644
3: 50 4.517
4: 1 544.056
5: 1;75;77;91 0.370
问题是分号分隔值不会拆分为其唯一值。我想要的是列中每个唯一值的总和,以便结果不再包含分号分隔值。
如何将列拆分,然后根据唯一值构建总和?