【发布时间】:2019-07-17 19:07:29
【问题描述】:
我有一个数据框,例如:
ID category value1 value2
1 A 2 5
1 A 3 6
1 A 5 7
1 B 6 **12**
2 A 1 3
2 A 2 5
2 B 5 **10**
现在我想添加一个新列来计算百分比。对于每个ID,计算的方式是用A类的每个value1除以B类的value2。对于B类的value1,直接除以B类的value2。预期的结果喜欢:
ID category value1 value2 percentage
1 A 2 5 0.17
1 A 3 6 0.25
1 A 5 7 0.42
1 B 6 **12** 0.50
2 A 1 3 0.10
2 A 2 5 0.20
2 B 5 **10** 0.50
非常感谢。
【问题讨论】:
-
第 4 行和第 7 行的计算与您的描述不符,因为这些商中的分子不是 A 类分子。
-
library(data.table); setDT(mdt)[, percentage:= value1/value2[category == "B"], by="ID"][] -
@John Coleman,已更改。
标签: r