在Stata中添加变量,然后除以一个数字,会产生意想不到的结果

在Stata中添加变量,然后除以一个数字,会产生意想不到的结果,stata,Stata,我试图通过从其他三个变量,即a、B和C中创建一个变量D来计算z分数。我试图将D生成为:D=(a-B)/C,但由于某种原因,当我这样做时,它会生成非常大的数字。当我做(A-B)时,它没有得到我手工计算时应该得到的,而不是-2,I为-105.66 变量A是“长的”,变量B是“浮动的”,我不确定这是否是原因?我的stata语法是: gen zscore= (height-avheight)/meansd 不起作用。我不确定您想要得到什么,但我将使用Stata的自动数据来解释。这是Stata的基本内容

我试图通过从其他三个变量,即a、B和C中创建一个变量D来计算z分数。我试图将D生成为:D=(a-B)/C,但由于某种原因,当我这样做时,它会生成非常大的数字。当我做(A-B)时,它没有得到我手工计算时应该得到的,而不是-2,I为-105.66

变量A是“长的”,变量B是“浮动的”,我不确定这是否是原因?我的stata语法是:

gen zscore= (height-avheight)/meansd

不起作用。

我不确定您想要得到什么,但我将使用Stata的自动数据来解释。这是Stata的基本内容。假设我想测试价格=3

sysuse auto
sum price
#return list which is optional command
scalar myz=(3-r(mean))/r(sd) #r(mean) and r(sd) gives the mean and sd of price, if that is given you can simply enter the value for that
dis myz
-2.0892576

所以,这里的z值是-2.09。

您混淆了标量和变量。这里有一个解决方案(切掉前四行,并将
x
替换为
height
,以使计算适合您的代码):


x
及其z分数
zx
是取许多值的变量,而
mu
sd
是常数。您可以使用标量或宏在Stata中对常量进行编码。

提供示例数据(值-平均值)不应为100;这取决于数据的可变性和测量单位。我不认为这能回答问题,但在任何情况下,这里都不需要
scalar
语句。在
summary x
之后,您可以
生成zx=(x-r(mean))/r(sd)
。正确的,您可以跳过它们并折叠语法,但问题似乎暗示中间值是有意义的。
// example data
clear
set obs 50
gen x = runiform()

// summarize
qui su x
// store scalars
sca de mu = r(mean)
sca de sd = r(sd)

// z-score
gen zx = (x - mu) / sd
su zx