Я пытаюсь закодировать переменную для метаболического синдрома с 5 критериями Ожирение (3 возможных бинарных исхода) Инсулинорезистентность (3 возможных бинарных исхода) Дислипидемия TGC (3 возможных бинарных исхода) Дислипидемия ЛПВП (2 возможных бинарных исхода) и гипертония(4 возможных бинарных результата).Если субъект положительный по любому из этих 5 критериев, он будет считаться положительным по метаболическому синдрому.
Я попытался объединить их в C5,3, учитывая, что все субъекты, положительные по 4 или 5 критериям, будут охваченыпо доверенности.Но мой код стал слишком большим, так как я пытался охватить любую возможную комбинацию.Можно ли уменьшить размер моего кода, используя приоритет оператора, чтобы сделать его более компактным?
METSYN <- array (NA,dim = dim(BancoTOTAL)[1] )
for (i in 1:791){
METSYN[i] <- ifelse ( #OID1 OID2
BancoTOTAL$sexo.x[i] == 0 && BancoTOTAL$cintura.x[i] > 90
&& BancoTOTAL$Glic[i] >= 100
&& BancoTOTAL$TRIG[i] > 150
|BancoTOTAL$sexo.x[i] == 1 && BancoTOTAL$cintura.x[i] > 80
&& BancoTOTAL$Glic[i] >= 100
&& BancoTOTAL$TRIG[i] > 150
|BancoTOTAL$IMC[i] > 30
&& BancoTOTAL$Glic[i] >= 100
&& BancoTOTAL$TRIG[i] > 150
and soon
, 1, 0)
}
Вот мой переработанный код с использованием промежуточных категориальных переменных
METSYN <- array(NA, dim = dim(BancoTOTAL)[1])
for (i in 1:(dim(BancoTOTAL)[1])){
METSYN[i] <- ifelse(
#OID1
BancoTOTAL$obesity[i] == 1
&& BancoTOTAL$insulinR[i] == 1
&& BancoTOTAL$dyslipidemiaTGC[i] == 1
#OID2
|BancoTOTAL$obesity[i] == 1
&& BancoTOTAL$insulinR[i] == 1
&& BancoTOTAL$dyslipidemiaHDL[i] == 1
#OIH
|BancoTOTAL$obesity[i] == 1
&& BancoTOTAL$insulinR[i] == 1
&& BancoTOTAL$HBP[i] == 1
#OD1D2
|BancoTOTAL$obesity[i] == 1
&& BancoTOTAL$dyslipidemiaTGC[i] == 1
&& BancoTOTAL$dyslipidemiaHDL[i] == 1
#OD1H
|BancoTOTAL$obesity[i] == 1
&& BancoTOTAL$dyslipidemiaTGC[i] == 1
&& BancoTOTAL$HBP[i] == 1
#OD2H
|BancoTOTAL$obesity[i] == 1
&& BancoTOTAL$dyslipidemiaHDL[i] == 1
&& BancoTOTAL$HBP[i] == 1
#ID1D2
|BancoTOTAL$obesity[i] == 1
&& BancoTOTAL$dyslipidemiaTGC[i] == 1
&& BancoTOTAL$dyslipidemiaHDL[i] == 1
#ID1H
|BancoTOTAL$insulinR[i] == 1
&& BancoTOTAL$dyslipidemiaTGC[i] == 1
&& BancoTOTAL$HBP[i] == 1
#ID2H
|BancoTOTAL$insulinR[i] == 1
&& BancoTOTAL$dyslipidemiaHDL[i] == 1
&& BancoTOTAL$HBP[i] == 1
#D1D2H
|BancoTOTAL$dyslipidemiaTGC[i] == 1
&& BancoTOTAL$dyslipidemiaHDL[i] == 1
&& BancoTOTAL$HBP[i] == 1
, 1, 0 )
}