[英]Stata: Generating individual comparison groups for each observation in sample (age brackets)
[英]Summarize across a thousand variables for each observation in Stata
我制作了一个循环,创建了一个变量expectedgpa
。
因此,现在每个观察值都有1,000个变量,分别标记为expectedgpa1
, expectedgpa2
... expectedgpa1000
。
我想获得每个观察值的所有expectedgpa
的平均值和标准差。
所以如果我有这个
Joe 1 2 1 2 4
Sally 2 4 2 4 3
Larry 3 3 3 3 3
我想要一个返回的变量
Joe 2
Sally 3
Larry 3
有什么帮助吗?
首先,对于未来的问题:
请发布代码以显示您的尝试。 您的问题表明没有进行任何研究。
其次,要澄清术语:
您创建了1000个变量,每个变量对应于一些预期的gpa 。 每个观察对应一个不同的人。 结果,您需要三个变量 。 一个带有该人的ID,另一个两个带有gpa的平均值和标准差(按人)。 至少这是我的解释。
一种解决方案涉及重塑数据:
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
运行by id: summarize exgpa
在reshape
后by id: summarize exgpa
,但这不会创建新变量。
请参阅help reshape
, help collapse
和help summarize
以获取详细信息。
如果没有用于分析它们的策略,就不应创建1000个新变量!
您还可以使用egen
函数rowmean()
和rowsd()
并保持相同的数据结构。
可以在http://www.stata-journal.com/sjpdf.html?articlenum=pr0046上查看 Stata中“行进”工作的评论。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.