我在Stata中运行了500次模拟,即我绘制了500个样本,每个样本包含10个观察结果。我想为每个样本生成一个均值,并将所有500个均值合并为一个变量,因为我需要绘制均值的直方图。目前,我有500个样本,名为X1
,X2
,... X500
,其中每个X
都有10个元素。我想得到每个X
的均值并绘制均值的直方图。有人可以告诉我该怎么做吗?我试图为平均值生成一个新变量,即X1mean = mean(X1)
,但这不起作用,因为所有10个空元素都将填充均值。
答案 0 :(得分:1)
"请告诉我代码"问题在这里被广泛认为是偏离主题的。请参阅https://stackoverflow.com/help/on-topic:"要求代码的问题必须表明对要解决的问题的最小理解。包括尝试的解决方案,他们为什么没有工作,以及预期的结果。"
有多种方法可以做到这一点。一个是collapse
,然后是xpose
或reshape long
。实际上,您可以首先生成500 x 10的组合样本。
另一个是循环遍历这样的变量
set obs 500
gen mean = .
quietly forval j = 1/500 {
su X`j', meanonly
replace mean = r(mean) in `j'
}
histogram mean
您可能提到的是
等代码egen X1mean = mean(X1)
这没用,但不是因为你提到的原因,因为相同的值总是可以忽略:它没有用,因为类似的代码只会产生500多个变量。请注意,mean()
不适用于generate
,因为mean()
是egen
函数。
您寻求的术语是观察,而不是元素。