ICD-10 Переменное перекодирование - PullRequest
1 голос
/ 13 апреля 2020

Я должен сделать некоторую перекодировку в базе данных. Это медико-административная база данных (поэтому большая база данных). Я должен перекодировать диагнозы, которые закодированы (ICD-10). Я использую приведенный выше пример базы данных в качестве указания.

ID<-(1:15)
Diag<-c("A001","A002","A003","A004","B001","B002","B003",
      "C001","C002","C003","C004","C005","C006","C007","C008")
Age<-round(rnorm(15,25,10))
DATA<-data.frame(ID,Diag,Age)

Поэтому я хотел бы:

кодировать как «Болезнь 1» все модальности «Diag», начинающиеся с « A "и" B ".

кодируют модальности от C001 до C004 как" Болезнь 2 ".

кодируют модальности от C005 до C008 как" Болезнь 3 ".

1 Ответ

0 голосов
/ 13 апреля 2020

Мы можем использовать case_when

library(dplyr)
library(stringr)
DATA %>%
   mutate(new = case_when(str_sub(Diag, 1, 1) %in% c('A', 'B') ~ 
        'Disease 1',
      Diag %in% str_c('C00', 1:4) ~ 'Disease 2', 
      TRUE ~ 'Disease 3'))
#   ID Diag Age       new
#1   1 A001   9 Disease 1
#2   2 A002  37 Disease 1
#3   3 A003  27 Disease 1
#4   4 A004  31 Disease 1
#5   5 B001  22 Disease 1
#6   6 B002  23 Disease 1
#7   7 B003  30 Disease 1
#8   8 C001  38 Disease 2
#9   9 C002  24 Disease 2
#10 10 C003  25 Disease 2
#11 11 C004  33 Disease 2
#12 12 C005  26 Disease 3
#13 13 C006  45 Disease 3
#14 14 C007  20 Disease 3
#15 15 C008  22 Disease 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...