次のような国を表す値がセミコロンで区切られた列を持つデータセットがあります。
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
問題は、セミコロンで区切られた値が一意の値に分割されないことです。私が欲しいのは、結果にセミコロンで区切られた値が含まれないように、列内の一意の値ごとの合計です。
列を分割してから、一意の値ごとに合計を作成するにはどうすればよいですか?