Hello,
I am using the punaf command to obtain a Population Attributable Fraction with 95% CI after running a regression command:
This displays:
I would like to use the postfile command to store these three results in a new dataset for MULTIPLE independent variables. I created the following loop with local macros to store the results:
Which generates the following error:
Basically the line featuring post should have 6 placeholders for the 6 variables I specify in the postfile line, rather than the 3 I currently have. Changing it to:
Creates 2 observations rather than 1 and repeats the PAF estimate and confidence limits twice in each line:
+-----------------------------------------------------------------------+
| paf_ast~a paf_as~ll paf_as~ul paf_bpm~s paf_bp~ll paf_bp~ul |
|-----------------------------------------------------------------------|
1. | .0970199 .088738 .1052266 .0970199 .088738 .1052266 |
2. | -.0064044 -.0091866 -.0036298 -.0064044 -.0091866 -.0036298 |
+-----------------------------------------------------------------------+
I would just like to have the 6 variables with only 1 observation, and with the first 3 cells in line 2 moved up to their correct position in cells 4-6 in line 1. Is there a loop that I could add within the code for post memhold to accomplish this? Thank you!
I am using the punaf command to obtain a Population Attributable Fraction with 95% CI after running a regression command:
Code:
logit asthma2 i._racegr2 ib4._smoker3, or vce(robust) punaf, atspec(_smoker3=4) eform matrix list r(cimat)
HTML Code:
r(cimat)[1,3]
Estimate Minimum Maximum
PAF .09701989 .08873796 .10522656
Code:
tempname memhold
postfile memhold paf_asthma paf_ast_ll paf_ast_ul paf_bpmeds paf_bpm_ll paf_bpm_ul using "newdataset", replace
quietly {
foreach yvar in asthma2 bpmeds {
logit `yvar' i._racegr2 ib4._smoker3, or vce(robust)
punaf, atspec(_smoker3=4) eform
matrix A= r(cimat)
local a = A[1,1]
local b = A[1,2]
local c = A[1,3]
post memhold (`a') (`b') (`c')
}
}
postclose memhold
use "newdataset", clear
list
post: 6 expressions expected and only 3 found
r(198);
r(198);
Code:
post memhold (`a') (`b') (`c') (`a') (`b') (`c')
+-----------------------------------------------------------------------+
| paf_ast~a paf_as~ll paf_as~ul paf_bpm~s paf_bp~ll paf_bp~ul |
|-----------------------------------------------------------------------|
1. | .0970199 .088738 .1052266 .0970199 .088738 .1052266 |
2. | -.0064044 -.0091866 -.0036298 -.0064044 -.0091866 -.0036298 |
+-----------------------------------------------------------------------+
I would just like to have the 6 variables with only 1 observation, and with the first 3 cells in line 2 moved up to their correct position in cells 4-6 in line 1. Is there a loop that I could add within the code for post memhold to accomplish this? Thank you!
