Я новичок в R и в настоящее время пытаюсь установить свои данные в соответствии с моими предопределенными критериями исключения для анализа. В настоящее время я пытаюсь удалить все случаи, которые имеют деменцию, как закодировано МКБ-10. Проблема заключается в том, что существует несколько переменных, содержащих информацию о состоянии болезни каждого индивидуума (~ 70 переменных), хотя, поскольку они закодированы одинаково, ко всем из них может применяться одинаковое условие.
Некоторые смоделированные данные:
#Create dataframe containing simulated data
df = data.frame(ID = c(1001, 1002, 1003, 1004, 1005,1006,1007,1008,1009,1010,1011),
disease_code_1 = c('I802','H356','G560','D235','B178','F011','F023','C761','H653','A049','J679'),
disease_code_2 = c('A071','NA','G20','NA','NA','A049','NA','NA','G300','G308','A045'),
disease_code_3 = c('H250','NA','NA','I802','NA','A481','NA','NA','NA','NA','D352'))
#data is structured as below:
ID disease_code_1 disease_code_2 disease_code_3
1 1001 I802 A071 H250
2 1002 H356 NA NA
3 1003 G560 G20 NA
4 1004 D235 NA I802
5 1005 B178 NA NA
6 1006 F011 A049 A481
7 1007 F023 NA NA
8 1008 C761 NA NA
9 1009 H653 G300 NA
10 1010 A049 G308 NA
11 1011 J679 A045 D352
Здесь я пытаюсь удалить любой случай, у которого есть «код слабоумия» в любой из переменных «болезнь_кода».
#Remove cases with dementia from dataframe (e.g. F023, G20)
Newdata_df <- subset(df, (2:4 != "F023"|"G20"|"F009"|"F002"|"F001"|"F000"|"F00"|
"G309"| "G308"|"G301"|"G300"|"G30"| "F01"|"F018"|"F013"|
"F012"| "F011"| "F010"|"F01"))
Ошибка, которую я получаю:
Error in 2:4 != "F023" | "G20" :
operations are possible only for numeric, logical or complex types
В идеале поднастроенный фрейм данных должен выглядеть следующим образом:
ID disease_code_1 disease_code_2 disease_code_3
1 1001 I802 A071 H250
2 1002 H356 NA NA
4 1004 D235 NA I802
5 1005 B178 NA NA
8 1008 C761 NA NA
11 1011 J679 A045 D352
Я знаю, что в моем коде есть ошибка, хотя я не уверен, как именно это исправить. Я пробовал несколько других способов (используя dplyr), но пока мне не повезло.
Любая помощь очень ценится!