【发布时间】:2021-08-13 09:11:39
【问题描述】:
我想基于多个 (>100) 其他变量在 R 中创建一些新变量。
我的数据集是这样的
sub_id diag_1_ais diag_2_ais diag_3_ais diag_4_ais diag_5_ais diag_1_br diag_2_br diag_3_br diag_4_br diag_5_br
1 1 1 1 2 2 1 6 0 1 6 1
2 2 2 3 2 5 1 3
3 3 0 0 <NA> 4 1 0 0 <NA> 2 2
4 4 NA 1 2 2 NA 1 1 4
5 5 NA 4 2 3 5 NA 4 3 4 3
变量 diag_x_ais 可以取 0-6 之间的整数,而 diag_x_br 可以取 1-6 之间的整数。 我想让 6 个新变量对应于 6 个可能的 diag_x_br 值,即新变量将被称为 br_1、br_2 ... br_6。然后这些新变量应填充相应的 diag_x_ais 变量的最大值,即 如果diag_1_br、diag_2_br和diag_4_br都是3,那么br_3应该取diag_1_ais、diag_2_ais和diag_4_ais的最大值。
另请参阅下面的示例数据集:
sub_id diag_1_ais diag_2_ais diag_3_ais diag_4_ais diag_5_ais diag_1_br diag_2_br diag_3_br diag_4_br diag_5_br br_1 br_2 br_3 br_4 br_5 br_6
1 1 1 1 2 2 1 6 0 1 6 1 2 NA NA NA NA 2
2 2 2 1 4 3 5 5 2 2 1 3 3 4 5 NA 2 NA
3 3 0 0 NA 4 1 0 0 NA 2 2 NA 4 NA NA NA NA
4 4 NA 1 2 2 NA 1 1 4 2 NA NA 2 NA NA
5 5 NA 4 2 3 5 NA 4 3 4 3 NA NA 5 4 NA NA
此后,我想要一个最终变量,它计算最多三个最大 br_x 变量的总和,示例如下所示:
sub_id diag_1_ais diag_2_ais diag_3_ais diag_4_ais diag_5_ais diag_1_br diag_2_br diag_3_br diag_4_br diag_5_br br_1 br_2 br_3 br_4 br_5 br_6 sum3
1 1 1 1 2 2 1 6 0 1 6 1 2 NA NA NA NA 2 4
2 2 2 1 4 3 5 5 2 2 1 3 3 4 5 NA 2 NA 12
3 3 0 0 NA 4 1 0 0 NA 2 2 NA 4 NA NA NA NA 4
4 4 NA 1 2 2 NA 1 1 4 2 NA NA 2 NA NA 4
5 5 NA 4 2 3 5 NA 4 3 4 3 NA NA 5 4 NA NA 9
我的实际数据集有 60 个 diag_x_ais 变量和 60 个 diag_x_br 变量和 4000 行。
我希望有人可以帮助我在 R 中做到这一点。谢谢!
【问题讨论】:
-
diag_1_ais和diag_2_br之间的关系以及如何计算您的br_x有点不清楚,请您详细说明一下? -
Ofc。当我达到字符限制时,我会将答案分成两部分。 diag_1_ais 与 diag_1_br 相关,diag_2_ais 与 diag_2_br 相关等等(这些“对”总共有 60 个)。然后我想创建六个新的 br_ 变量,从 br_1 到 br_6。 br_ 变量以 diag_x_br 可以取的值命名,即整数 1-6。如果我们从 br_1 开始,那么我希望它在所有 diag_x_br 变量(即 60 个变量)中“搜索”1,并插入相应 diag_x_ais 变量的最大值。
-
假设 diag_3_br、diag_4_br 和 diag_7_br 都取值 1,它们对应的 diag_3_ais、diag_4_ais 和 diag_7_ais 分别取值 1、4、2。那么 br_1 应该取值 4,因为这是对应的 diag_x_ais 值的最大值。这有意义吗?
-
我明白你的意思。