我的数据集看起来像这样R中
set.seed(1)
data <- data.frame(ITEMID = 101:120,DEPT = c(rep(1,10),rep(2,10)),
CLASS = c(1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2),
SUBCLASS = c(3,3,3,3,4,4,4,4,4,3,3,3,3,3,3,4,4,4,4,4),
PRICE = sample(1:20,20),UNITS = sample(1:100,20)
)
> data
ITEMID DEPT CLASS SUBCLASS PRICE UNITS
1 101 1 1 3 6 94
2 102 1 1 3 8 22
3 103 1 1 3 11 64
4 104 1 1 3 16 13
5 105 1 1 4 4 26
6 106 1 2 4 14 37
7 107 1 2 4 15 2
8 108 1 2 4 9 36
9 109 1 2 4 19 81
10 110 1 2 3 1 31
11 111 2 1 3 3 44
12 112 2 1 3 2 54
13 113 2 1 3 20 90
14 114 2 1 3 10 17
15 115 2 1 3 5 72
16 116 2 2 4 7 57
17 117 2 2 4 12 67
18 118 2 2 4 17 9
19 119 2 2 4 18 60
20 120 2 2 4 13 34
现在我想用下面的逻辑
以项目ID 101添加一个名为PRICE_RATIO另一列,并与DEPT,类和子类GROUP_BY产量价格c(6,8,11,16)
和ITEMIDs c(101,102,103,104)
分别
现在每个项目ID的变量PRICE_RATIO将是项目ID的价格加权价格的比率UNITS c(94,22,64,13)
的组中所有其他itemID。例如
对于项目ID其他101
项c(102,103,104)
其总单位(22+ 64+13) =99
和重量(22/99,64/99,13/99)
。因此所有其他项目的加权价格是(22/99)*8 + (64/99)*11 + (13/99)*16 = 10.9899
。因此PRICE_RATIO的值将为6/10.9899= .54
对于所有其他项目类似。
创建的代码,这将大大任何帮助表示赞赏
,完美的工作 –