我需要将第一个数据帧的给定列中的每个值除以第二个数据帧的相应列名中的值。例如,我需要将0
demand_copy
列中的每个值除以25.5,将1
列中的每个值除以13.0等,并获得结构相同的输出作为第一个数据框
如何在R中做到这一点?
> head(demand_copy) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 25 9 14 3 10 10 28 175 406 230 155 151 202 167 179 185 275 298 280 185 110 84 93 51 2 36 17 9 3 2 7 32 88 110 131 89 125 149 165 161 147 178 309 339 201 115 78 67 39 3 10 3 5 10 0 11 15 58 129 110 49 62 62 100 70 73 72 86 116 61 49 37 26 22 4 24 15 10 5 3 4 39 53 108 98 80 118 116 110 135 158 157 196 176 132 118 94 91 102 5 40 45 15 9 16 37 75 205 497 527 362 287 316 353 359 309 365 653 598 468 328 242 168 102 6 0 0 1 2 0 0 11 56 26 12 21 6 27 15 18 5 14 19 25 6 4 0 1 0
> medians medians 0 25.5 1 13.0 2 8.0 3 4.0 4 4.0 5 10.0 6 38.5 7 106.5 8 205.5 9 164.0 10 111.5 11 130.5 12 160.0 13 164.5 14 170.0 15 183.0 16 202.0 17 282.0 18 256.5 19 178.0 20 109.0 21 80.0 22 60.5 23 41.0
答案 0 :(得分:4)
您可以使用
t(t(demand_copy) / medians[, 1])
或
sweep(demand_copy, 2, medians[, 1], "/")
请注意,第一种方法返回一个矩阵,而第二种方法返回一个数据帧。
我还建议将medians
作为向量,而不是具有单列的数据框。然后,您可以在上面的两行中使用medians
代替medians[, 1]
。