【发布时间】:2020-07-07 17:47:35
【问题描述】:
我有一个如下图所示的数据框:
> head (DATA)
N_b N_l X_ext x.sqr_sum e_1 e_2 e_3 e_4 e_5
1 5 3 18 810 14.6 2.6 -9.4 0 0
2 5 3 18 810 14.6 2.6 -9.4 0 0
3 5 4 24 1440 21.8 9.8 -2.2 -14.2 0
4 5 4 24 1440 21.8 9.8 -2.2 -14.2 0
5 5 5 30 2250 29 17 5 -7 -19
6 5 5 30 2250 29 17 5 -7 -19
为 N_L 值找到 R 的最大值,直到它在上面的数据帧 DATA 中给出。 这意味着对于 N_L 等于 3 的数据帧的第 1 行和第 2 行,新添加的列本身适用于两者:
DATA$R1 <- (1 / DATA$N_b) + ((DATA$X_ext * (DATA$e_1)) / DATA$x.sqr_sum)
DATA$R2 <- (2 / DATA$N_b) + ((DATA$X_ext * (DATA$e_1 + DATA$e_2)) / DATA$x.sqr_sum)
DATA$R3 <- (3 / DATA$N_b) + ((DATA$X_ext * (DATA$e_1 + DATA$e_2 + DATA$e_3)) / DATA$x.sqr_sum)
DATA$R <- max(DATA$R1, DATA$R2, DATA$R3)
我还需要知道哪个 N_L 值导致 R 的最大值(在 R1、R2 等之间的每一行中,哪一列的数量最大)
对于 N_L = 5 的第 5 行和第 6 行,将有 R1、R2、R3、R4 和 R5,以从中选择最大值。
我想编写一个 for 循环,该循环将遍历每行中小于等于 N_L 的值,并使用适当的总和项求解 R。任何指导表示赞赏!
【问题讨论】: