「comorbid_names」という名前の変数のリストがあります。そして、「併存症」に併存症がある人を選びたい。ただし、変数名がtrueの場合は、変数名を選択します。
たとえば、患者1には「chd」のみがあるため、それだけがTRUEとして表示されます。
comorbid_names [1] "chd" "heart_failure" "stroke"
[4]「高血圧」「糖尿病」「copd」
[7]「てんかん」「甲状腺機能低下症」「癌」
[10] "喘息" "ckd_stage3" "ckd_stage4"
[13] "ckd_stage5" "atrial_fibrilation" "learning_disability"
[16] "peripheral_arterial_disease" "osteoporosis"
class(comorbid_names)[1]「キャラクター」
併存疾患<-names(p [、comorbid_names] [p [、comorbid_names] == 1])
この時点で私はこのエラーを受け取ります
エラー:列のインデックス付けでのマトリックスまたは配列のサポートされていない使用
理由は完全にはわかりませんが、comorbid_namesが文字であることと関係があると思います
誰かアドバイスはありますか?
単に_p[, comorbid_names] == 1
_を使用すると、選択した罹患率のTRUE/FALSE値のテーブルが表示されます。患者名またはIDをそのリストに追加するには、次のようにcbind
を使用します。cbind(p["patient_id"], p[, comorbid_names] == 1)
ここで、「patient_id」は患者を識別する列の名前です。
これは完全に再現可能な例です:
_comorbid_names <- c("chd", "heart_failure","stroke", "hypertension",
"diabetes", "copd", "epilepsy", "hypothyroidism",
"cancer", "asthma", "ckd_stage3", "ckd_stage4",
"ckd_stage5", "atrial_fibrilation", "learning_disability",
"peripheral_arterial_disease", "osteoporosis")
all_morbidities <- c("chd", "heart_failure","stroke", "hypertension",
"diabetes", "copd", "epilepsy", "hypothyroidism",
"cancer", "asthma", "ckd_stage3", "ckd_stage4",
"ckd_stage5", "atrial_fibrilation", "learning_disability",
"peripheral_arterial_disease", "osteoporosis",
"hairyitis", "jellyitis", "transparency")
# Create dummy data frame "p" with patient ids and whether or not they suffer from each condition
patients <- data.frame(patient_id = 1:20)
conditions <- matrix(sample(0:1, nrow(patients)*length(all_morbidities), replace=TRUE),
nrow(patients),
length(all_morbidities))
p <- cbind(patients, conditions)
names(p) <- c(names(patients), all_morbidities)
# Final step: get patient IDs and whether they suffer from specific morbidities
comorbidities <- cbind(p["patient_id"], p[, comorbid_names] == 1)
_
少なくとも1つの罹患率に苦しんでいる患者のみを選択する場合は、次のようにします。
_comorbidities[rowSums(comorbidities[-1]) != 0]
_