0

我目前有三个数据框 A、B、C,并致力于计算每个人的 P 和 H 值。数据框是每个指标的权重。在 B 数据框中,每一行表示不同的人,每行中的所有值表示每个人的不同指标。每个人都有 8 个 p 值。当我计算 P1-P8 值时,这是一个棘手的过程,因为我需要检索 A 中每一列的值,B 中每一行的值。

例如,对于第一个人,他们有八个 P 值。首先,P1 = a11(a1 列的第一个值)* d11(第一行的第一个值)+ a12(a1 列的第二个值)* d2i1(第一行的第二个值)+ .... + a18(第 8 个值) a1 列)* d4iii1(第 1 行的第 8 个值)

类似地,P n ( n =1,2,3,4,5,6,7,8 即 P 的数量) 等于 a n 1 ( n列的第一个值) * d1 (第一行的第一个值) + a n 2 * d2i n + ... + a n 8(第n列的第 8 个值)* d4iii n(第 1 行的第 8 个值)。

只要我们得到P值,对于这个人,H = (c1 * p1 + c2 * p2 + ... + c8 * p8) / (c值之和)

这是计算第一人称的 P 和 H 值的过程。如果我想为其他人获取这些,我需要切换到 B 数据框中的另一行。对于第二个人,P1 = a11(a1 列的第一个值)* d11(第二行的第一个值)+ a12(a1 列的第二个值)* d2i1(第二行的第二个值)+ .... + a18(第 8 个) a1 列的值)* d4iii1(第 2 行的第 8 个值)

等等.....

我想知道如何为每个人自动生成 Pn 变量(因为我的数据集中有很多人,他们自己都有 8 个 P 值)并将它们存储在一个带有他们的 id 的新数据框中(即在数据框 B 中他们属于哪一行)。以及如何获取每个人的 H 值并将它们存储在带有其 id 的新数据框中。我需要使用for循环吗?

提前致谢。这个问题已经困扰我很久了。

下面是数据框A

           a1         a2          a3          a4          a5          a6
[1,] 0.3692138  0.1996207  0.33206893 -0.56119398 -0.08408712  0.26602100
[2,] 0.3145976  0.1092697 -0.73795950 -0.05969218 -0.30413354  0.03878391
[3,] 0.2460529 -0.5651003 -0.39410544 -0.32388500  0.40546811  0.14228006
[4,] 0.3222877  0.4139147 -0.17635789  0.59190345  0.32542055  0.14541092
[5,] 0.3411728  0.4788865  0.05223981 -0.32157631  0.36949738 -0.40617999
[6,] 0.4343109 -0.0797815  0.08669171  0.09679937 -0.67808516 -0.19700746
[7,] 0.4087344 -0.1867772  0.31806058  0.23704899  0.07403367  0.58710855
[8,] 0.3580635 -0.4323943  0.21752657  0.23931841  0.16828680 -0.58124876
             a7         a8
[1,] -0.5049092  0.2566187
[2,] -0.2824577 -0.4088489
[3,]  0.2393132  0.3434825
[4,] -0.1243642  0.4481563
[5,]  0.4220109 -0.2617724
[6,]  0.4172609  0.3397135
[7,]  0.2169848 -0.4933922
[8,] -0.4396189 -0.1442195

下面是数据框B

              d1        d2i        d2ii        d3i         d3ii
 [1,]  2.2274980  0.2326252 -0.36403204  1.0739447  1.755403659
 [2,] -0.3992994 -0.5938799 -0.43979975 -0.6239955  0.003876488
 [3,]  0.6507902  1.3874935 -0.00927353  1.4067272  1.585108666
 [4,] -0.8035235 -1.0849895 -1.02000495 -1.0752411 -1.040682924
 [5,] -1.0362378  0.1243315 -0.50852517  1.3145696 -0.481857193
 [6,] -0.6401465 -0.9604119 -0.38205492 -1.0742542 -0.873746856
 [7,] -0.3017772 -0.9956345 -0.48684163 -0.5369783 -0.451910416
 [8,] -0.1562037  1.5676411  0.95787726 -0.1114577 -0.249915890
 [9,]  0.4588999  0.3228244  2.25265473 -0.3733147 -0.246275535
              d4i       d4ii      d4iii
 [1,]  1.82026675  1.6995820  1.0502324
 [2,] -0.54785322 -0.7978294 -0.5473042
 [3,] -0.06861184 -0.2715582 -0.5473042
 [4,] -1.09490583 -1.1478482 -0.8135603
 [5,]  0.32763531  0.5250373  0.5177202
 [6,] -0.96009257 -0.8268047 -0.6804322
 [7,] -0.97214626 -0.3313835 -0.8135603
 [8,]  0.53548889 -0.2468898 -0.2144841
 [9,]  0.96021878  1.3976945  2.0486927

数据框 C

[1,] 4.860280668
[2,] 1.526722855
[3,] 0.892681697
[4,] 0.546369771
[5,] 0.127146103
[6,] 0.036401438 
[7,] 0.010293019
[8,] 0.000104449
4

0 回答 0