计算多个变量的一个均值和标准差

Calculating one mean and standard deviation for multiple variables

请考虑以下内容table:

我想使用 Stata 计算所有观测值的均值和标准差。 Stata 可以测量每个变量和观察值的均值和标准差;然而,找到所有观测值的均值和标准差并不简单。如何生成所有数据的均值和标准差? 使用Excel,这个table的均值和标准差分别是4.23.286

clear 
input str1 person item11 item21 item14 item15 item25 
a 2 3 5 1 3 50
b 3 10 2 7 14 
c 7 3 1 4 2 
d 4 2 6 1 4 
end 

mata 
data = st_data(., "item*")
mean(vec(data)), sqrt(variance(vec(data)))
end 

Stata 打印出 4.2 3.286335345。

编辑这是一个将标量导出回 Stata 的版本。

clear 
input str1 person item11 item21 item14 item15 item25 
a 2 3 5 1 3 50
b 3 10 2 7 14 
c 7 3 1 4 2 
d 4 2 6 1 4 
end 

mata 
data = st_data(., "item*")
mean = mean(vec(data)); sd = sqrt(variance(vec(data)))
mean, sd 
st_numscalar("mean", mean) 
st_numscalar("sd", sd)
end 

di scalar(mean)
di scalar(sd)

如果需要考虑所有观察结果,也许长格式是更有用的格式。 (感谢 Nick 提供的数据示例)

clear 
input str1 person bread vegatable fruit meat soda
a 2 3 5 1 3 
b 3 10 2 7 14 
c 7 3 1 4 2 
d 4 2 6 1 4 
end 

ds person, not
rename (`r(varlist)') val=

reshape long val, i(person) j(item) string
sum val