我有一个数据集,其中包含用分号分隔的值的列,这些值代表这样的国家:
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
问题是分号分隔的值没有拆分为它们的唯一值。我想要的是列中每个唯一值的总和,以便结果不再包含分号分隔的值。
如何拆分列,然后建立每个唯一值的总和?