我创建了一个创建变量expectedgpa
的循环。
所以现在每个观察点都有1,000个变量,标记为expectedgpa1
,expectedgpa2
... expectedgpa1000
。
我希望得到每次观察的所有expectedgpa
s的平均值和标准偏差。
所以,如果我有这个
Joe 1 2 1 2 4
Sally 2 4 2 4 3
Larry 3 3 3 3 3
我想要一个返回的变量
Joe 2
Sally 3
Larry 3
任何帮助?
答案 0 :(得分:3)
首先,对于未来的问题:
请发布显示您尝试过的代码。您的问题显示没有研究工作。
其次,澄清术语:
您创建了1000个变量 一个对应于一些预期的gpa 。每个观察对应 对不同的人。因此,您希望三个变量。一个人的身份 另外两个与gpa的平均值和sd(按人)。 这是我的解释,至少。
一种解决方案涉及重塑数据:
clear all
set more off
input ///
str5 id exgpa1 exgpa2 exgpa3 exgpa4 exgpa5
Joe 1 2 1 2 4
Sally 2 4 2 4 3
Larry 3 3 3 3 3
end
list
reshape long exgpa, i(id) j(exgpaid)
collapse (mean) mexgpa=exgpa (sd) sdexgpa=exgpa, by(id)
list
您可以在collapse
之后运行by id: summarize exgpa
,而不是reshape
,但这不会创建新变量。
有关详细信息,请参阅help reshape
,help collapse
和help summarize
。
答案 1 :(得分:1)
如果没有关于如何分析它们的策略,您不应该创建1000个新变量!
您还可以使用egen
函数rowmean()
和rowsd()
并保留相同的数据结构。
可以在http://www.stata-journal.com/sjpdf.html?articlenum=pr0046
查看Stata中“rowwise”的工作情况