Stata 中的无效语法循环

问题描述

我正在尝试运行 for 循环以在 Stata 中制作平衡表(将我的数据集的人口统计数据与国家级统计数据进行比较)

为此,我正在准备我的数据集并尝试计算一些关键人口统计数据的百分比/平均值。

preserve
    rename unearnedinc_wins95 unearninc_wins95
    foreach var of varlist fem age nonwhite hhsize parent employed savings_wins95 debt_wins95 earnedinc_wins95 unearninc_wins95 underfpl2019 { //continuous or binary; to put categorical vars use kwallis test
            dis "for variable `var':"
            tabstat `var' 
            summ `var' 
            local `var'_samplemean=r(mean)
        }    
    clear
    set obs 11
    gen var=""
    gen sample=.
    gen F=.
    gen pvalue=.
    replace var="% Female" if _n==1 
    replace var="Age" if _n==2
    replace var="% Non-white" if _n==3
    replace var="HH size" if _n==4
    replace var="% Parent" if _n==5
    replace var="% Employed" if _n==6
    replace var="Savings stock ($)" if _n==7
    replace var="Debt stock ($)" if _n==8
    replace var="Earned income last mo. ($)" if _n==9
    replace var="Unearned income last mo. ($)" if _n==10
    replace var="% Under FPL 2019" if _n==11
    foreach col of varlist sample {
        replace `col'=100*round(`fem_`col'mean',0.01) if _n==1
        replace `col'=round(`age_`col'mean') if _n==2
        replace `col'=100*round(`nonwhite_`col'mean',0.01) if _n==3
        replace `col'=round(`hhsize_`col'mean',0.1) if _n==4
        replace `col'=100*round(`parent_`col'mean',0.01) if _n==5
        replace `col'=100*round(`employed_`col'mean',0.01) if _n==6
        replace `col'=round(`savings_wins95_`col'mean') if _n==7
        replace `col'=round(`debt_wins95_`col'mean') if _n==8
        replace `col'=round(`earnedinc_wins95_`col'mean') if _n==9
        replace `col'=round(`unearninc_wins95_`col'mean') if _n==10
        replace `col'=100*round(`underfpl2019_`col'mean',0.01) if _n==11
    }

我正在尝试运行以下循环,但在循环的后半部分,我不断收到“无效语法”错误。对于上下文,在循环的前半部分(在清除数据集之前),代码将变量的平均值存储为宏(`var'_samplemean)。有人可以帮我解决这个问题吗?

我的样本数据:

clear
input byte fem float(age nonwhite) byte(hhsize parent) float employed double(savings_wins95 debt_wins95 earnedinc_wins95 unearninc_wins95) float underfpl2019
1 35 1 6 1 1   0  2500    0 0 0
0 40 0 4 1 1   0 10000 1043 0 0
0 40 0 4 1 1   0 20000 2400 0 0
0 40 0 4 1 1 .24 20000 2000 0 0
0 40 0 4 1 1  10     . 2600 0 0

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)