测量中的Stata输出文件
我有一些调查数据,我正在使用Stata进行分析。我想按组计算一个变量的平均值,并将这些平均值保存到Stata文件中。我的代码如下所示:测量中的Stata输出文件,stata,survey,Stata,Survey,我有一些调查数据,我正在使用Stata进行分析。我想按组计算一个变量的平均值,并将这些平均值保存到Stata文件中。我的代码如下所示: svyset [iw=wtsupp], sdrweight(repwtp1-repwtp160) vce(sdr) svy: mean x 我试过了 svy: by grp: mean x 但这并不奏效。我只需简单地说一下,就可以将每个意思保存到一个单独的文件中 svy: mean x if grp==1 但这是低效的。有更好的办法吗 还需要将结果保存到文
svyset [iw=wtsupp], sdrweight(repwtp1-repwtp160) vce(sdr)
svy: mean x
我试过了
svy: by grp: mean x
但这并不奏效。我只需简单地说一下,就可以将每个意思保存到一个单独的文件中
svy: mean x if grp==1
但这是低效的。有更好的办法吗
还需要将结果保存到文件中,就像可以使用SAS ODS捕获结果一样。我不是在说日志。我需要方法和相关组。我在想
estimates save [path],replace
但我不确定这是否会给我一个Stata文件,或者如果我能通过处理找到如何使用的组。编辑10/28 此版本包含易读性改进,结果变量和保存的数据集在本地宏中指定。因此,分析员无需触摸foreach块。使用更易于编写和读取的矩阵下标表达式代替
el
矩阵函数:因此m[1,1]
代替el(“m”,1,1)
于2008年10月编辑 此版本包含易读性改进,结果变量和保存的数据集在本地宏中指定。因此,分析员无需触摸foreach块。使用更易于编写和读取的矩阵下标表达式代替
el
矩阵函数:因此m[1,1]
代替el(“m”,1,1)
这里有一个更简单的方法,可以创建显示的估计结果的数据集:估计平均值、标准误差、置信限、z统计和p值
svy:mean
通过over()
选项调用,它消除了对foreach
循环的需要,并计算适合于子种群分析的标准误差。估计结果包含在返回的矩阵r(表)
中,该矩阵由svmat
命令转换为Stata数据集。虽然svmat
维护列名,但它不保留行(组)名,因此有必要将它们合并到创建的数据集中
set more off
use http://www.stata-press.com/data/r13/ss07ptx, clear
svyset _n [pw= pwgtp], sdrweight(pwgtp*) vce(sdr)
************************************************ *
* Set name of grouping variable in double quotes *
* in the next line. *
* ************************************************
local gpname "sex"
tempvar gp
egen `gp' = group(`gpname')
preserve
tempfile t1
bys `gp': keep if _n==1
keep `gp' `gpname'
save `t1'
restore
svy: mean agep , over(`gp')
matrix a = r(table)'
clear
qui svmat double a, names(col)
gen `gp'=_n
merge 1:1 `gp' using `t1'
keep `gpname' b se z pvalue ll ul
order `gpname'
save results, replace
list
这里有一个更简单的方法,可以创建显示的估计结果的数据集:估计平均值、标准误差、置信限、z统计和p值svy:mean
通过over()
选项调用,它消除了对foreach
循环的需要,并计算适合于子种群分析的标准误差。估计结果包含在返回的矩阵r(表)
中,该矩阵由svmat
命令转换为Stata数据集。虽然svmat
维护列名,但它不保留行(组)名,因此有必要将它们合并到创建的数据集中
set more off
use http://www.stata-press.com/data/r13/ss07ptx, clear
svyset _n [pw= pwgtp], sdrweight(pwgtp*) vce(sdr)
************************************************ *
* Set name of grouping variable in double quotes *
* in the next line. *
* ************************************************
local gpname "sex"
tempvar gp
egen `gp' = group(`gpname')
preserve
tempfile t1
bys `gp': keep if _n==1
keep `gp' `gpname'
save `t1'
restore
svy: mean agep , over(`gp')
matrix a = r(table)'
clear
qui svmat double a, names(col)
gen `gp'=_n
merge 1:1 `gp' using `t1'
keep `gpname' b se z pvalue ll ul
order `gpname'
save results, replace
list
collapse
允许pweights
并直接生成新的数据集。对不起,我不知道SAS的咒语是干什么的。但只是在记忆中。我需要它在磁盘上。如果我说save,replace,它可能会被保存。在任何情况下,我都有复制权重,所以我不认为折叠是合适的。如果有办法也能得到简历,那就好了。如果你把你的数据集压缩成一个新的数据集,那么显然你也可以保存它。您也可以折叠
标准偏差,从而计算变异系数。你需要(向我)解释一下你所说的复制重量是什么意思。如上所述,collapse
支持pweights
。复制权重伴随着要使用引导法
、折刀法
或brr
(平衡重复复制)分析的数据集。每个复制都有一个权重变量,不在复制中的观察值为零,原始权重的膨胀版本弥补了零权重。复制权重只影响标准错误,因此Nick的带有概率权重的折叠
解决方案将用于保存方法。@威廉·莎士比亚:请注意,如果grp==1,则行将产生错误的标准错误。它应该是svy,subop(如果grp==1):平均值x
。原因见第页。《Stata 13调查手册》第81条(“子种群估计”)。另外,estimates store
不会保存到Stata数据集中,因此也不会工作。collapse
允许pweights
并直接生成新的数据集。对不起,我不知道SAS的咒语是干什么的。但只是在记忆中。我需要它在磁盘上。如果我说save,replace,它可能会被保存。在任何情况下,我都有复制权重,所以我不认为折叠是合适的。如果有办法也能得到简历,那就好了。如果你把你的数据集压缩成一个新的数据集,那么显然你也可以保存它。您也可以折叠
标准偏差,从而计算变异系数。你需要(向我)解释一下你所说的复制重量是什么意思。如上所述,collapse
支持pweights
。复制权重伴随着要使用引导法
、折刀法
或brr
(平衡重复复制)分析的数据集。每个复制都有一个权重变量,不在复制中的观察值为零,原始权重的膨胀版本弥补了零权重。复制权重只影响标准错误,因此Nick的带有概率权重的折叠
解决方案将用于保存方法。@威廉·莎士比亚:请注意,如果grp==1,则行将产生错误的标准错误。它应该是svy,subop(如果grp==1):平均值x
。原因见第页。《Stata 13调查手册》第81条(“子种群估计”)。而且,估计存储
不会保存到Stata数据集中,所以这也不起作用。@SteveSamuel