【发布时间】:2020-02-17 02:24:19
【问题描述】:
我对 R 很陌生。我有一个数据框,其中包含应匹配的入院和出院变量对,例如:
V1adm V1dis V2adm V2dis V3adm V3dis
1 120 120 yes yes 60 60
2 110 110 yes <NA> 40 40
3 60 NA no <NA> NA NA
4 90 NA <NA> no 20 NA
如果缺少任何一个变量对,我已经创建了一个带有 TRUE 的数据框:
# Variable names
adm_vars<- c("V1adm", "V2adm", "V3adm")
dis_vars<- c("V1dis", "V2dis", "V3dis")
# Create empty dataframe
pairs_NA<- matrix(NA, ncol=3, nrow=nrow(data))
pairs_NA<- as.data.frame(pairs_NA)
names(pairs_NA)<- paste(adm_vars, dis_vars, sep = '_')
# Add TRUE if adm OR dis variable NA
for(i in 1:3){
x<- data[, adm_vars[i]]
y<- data[, dis_vars[i]]
pairs_NA[,i]<- is.na(x) | is.na(y)
}
V1adm_V1dis V2adm_V2dis V3adm_V3dis
1 FALSE FALSE FALSE
2 FALSE TRUE FALSE
3 TRUE TRUE TRUE
4 TRUE TRUE TRUE
对于所有 3 行都缺失的行,我想创建一个数据框,如果该对缺失(即,pairs_NA 中的列为 TRUE),则将“pairs_NA”中的列名作为单元格值。它应该看起来像这样:
1 2 3
3 V1adm_V1dis V2adm_V2dis V3adm_V3dis
4 V1adm_V1dis V2adm_V2dis V3adm_V3dis
如果每个特定行的列中存在“TRUE”,我是否可以将“pairs_NA”的列名指定为单元格值?
【问题讨论】:
标签: r