我有data.table
DT
,有两列
V1 V2
1: 1 3
2: 2 4
3: 3 5
4: 2 2
5: 3 8
6: 1 4
7: 2 5
对于每一行,我想要使用相同V1
的所有条目并添加V2
条目,然后将V2
条目除以该总和并添加第三列。例如,在第1行第3列中,答案应为3 /(3 + 4)。在第2行第3列中,答案应为4 /(4 + 2 + 5)等。
最终我应该
V1 V2 V3
1: 1 3 0.4285714
2: 2 4 0.3636364
3: 3 5 0.3846154
4: 2 2 0.1818182
5: 3 8 0.6153846
6: 1 4 0.5714286
7: 2 5 0.4545455
我可以通过V3
获取q <- DT[,V2/sum(V2),by='V1']
但是行的顺序错误
V1 V1
1: 1 0.4285714
2: 1 0.5714286
3: 2 0.3636364
4: 2 0.1818182
5: 2 0.4545455
6: 3 0.3846154
7: 3 0.6153846
如此简单地将q
的第二列粘贴到DT
将无法正常工作。另外,data.table
q
现在有两个名称相同的列V1
,有点笨拙。
我几天来一直在讨论这个问题,搜索高低,仍然无法得出一个简单的答案。任何帮助将不胜感激。