>624
Rを使った酸塩基平衡の計算

Astrap <- \(pH,pCO2,HCO3){
e=1e-12
pH_l=7.36-e
pH_u=7.44+e
pCO2_l=36-e
pCO2_u=44+e
HCO3_l=22-e
HCO3_u=26+e
expected_CO2=NULL
expected_HCO3=NULL
status=NULL
HH =\(pCO2,HCO3,pK=6.1) round(pK+log10(HCO3/(pCO2*0.03)),2) # Henderson-Hasselbalch
if(pH_l<pH & pH<pH_u){
if(pCO2>pCO2_u){
primary="mixed respiratory acidosis"
additional="and metabolic alkalosis"
}
if(pCO2<pCO2_l){
primary="mixed respiratory alkalosis"
additional="and metabolic acidosis"
}
}

if(pCO2_l<pCO2 & pCO2<pCO2_u){
if(pH>pH_u){
primary="mixed metaboic alkalosis"
additional="and respiratory acidosis"
}
if(pH<pH_l){
primary="mixed metabolic acidosis"
additional="and respiratory alkalosis"
}
}

if(pH<pH_l & pCO2<pCO2_l){
primary="primary metabolic acidosis"
expected_pCO2=40 + 1.2*(HCO3-24)
if(pCO2<expected_pCO2) additional= "secondary respiratory alkalosis"
if(pCO2>expected_pCO2) additional= "secondary respiratory acidosis"
expected_pH=HH(expected_pCO2,HCO3)
}

if(pH>pH_u & pCO2>pCO2_u){
primary="primary metabolic alkalosis"
expected_pCO2=40 + 0.7*(HCO3-24)
if(pCO2<expected_pCO2) additional= "secondary respiratory alkalosis"
if(pCO2>expected_pCO2) additional= "secondary respiratory acidosis"
expected_pH=HH(expected_pCO2,HCO3)
}