首页 > 解决方案 > 使用 purrr 基于多个现有变量创建新的指标变量

问题描述

我正在尝试在 tidyverse 中学习 purrr 并且做得很短。我有一个如下所示的数据集:

DX1 DX2 DX3 DX4 DX5 DX6  ... DX26 
 2    2   2   2   4   7  ...  3
 4
 7    3   3   6   4
 3    4
 6

其中 DX 是各种 ICD9/10 代码,总共有 26 个可能的选项。如果不需要超过给定数量的诊断,则剩余的 DX 变量留空。

我需要遍历所有 26 个 DX 变量并创建一个新变量,如果有任何响应为 4,则值为 1,如果没有响应 4,则值为 0。换句话说,它应该如下所示:

DX1 DX2 DX3 DX4 DX5 DX6  ... DX26 NewVar
 2    2   2   2   4   7  ...  3     1
 4                                  1
 7    3   3   6   4                 1
 3    4                             1
 6                                  0

有没有一种简单的方法可以让 purrr 做到这一点?提前感谢您的任何建议!

标签: rpurrr

解决方案


您可以尝试下面的代码rowSums()(假设没有数字的地方用 填充NA

df$NewVar <- rowSums(df==4,na.rm = T)

推荐阅读