Stata 使用类似折叠的方法进行总结
我想使用Stata的Stata 使用类似折叠的方法进行总结,stata,reshape,data-manipulation,Stata,Reshape,Data Manipulation,我想使用Stata的折叠像总结。假设我有数据(1对应于同一个人,2和3对应于同一个人),当summaryd时,如下所示: Obs Mean Std. Dev. Min Max Score1 54 17 3 11 22 Score2 32 13 2 5 28 Score3 43 22 4 17 33
折叠
像总结
。假设我有数据(1对应于同一个人,2和3对应于同一个人),当summary
d时,如下所示:
Obs Mean Std. Dev. Min Max
Score1 54 17 3 11 22
Score2 32 13 2 5 28
Score3 43 22 4 17 33
Value1 54 9 3 2 12
Value2 32 31 7 22 44
Value3 43 38 4 31 45
Speed1 54 3 1 1 11
Speed2 32 6 3 2 12
Speed3 43 8 2 2 15
我如何创建一个新的数据集(使用collapse
或其他方法),它看起来有点像summary
给出的数据集,但看起来像以下内容?请注意,变量后面的数字对应于我的数据中的观察值。因此,Score1
、Value1
和Speed1
都对应于_n==1
_n ScoreMean ValueMean SpeedMean ScoreMax ValueMax SpeedMax
1 17 9 3 22 12 11
2 13 31 6 28 44 12
3 22 38 8 33 45 15
(为了简洁起见,我省略了标准偏差和最小值。)
当我运行折叠(平均)记分1记分2记分3值1值2值3速度1速度2速度3
时,我得到了以下结果,但这并不是很有帮助:
Score1 Score2 Score3 Value1 Value2 Value3 Speed1 Speed2 Speed3
1 17 13 22 9 31 38 3 6 8
这是在正确的轨道上。不过,这只能说明我的意思。我不知道如何让它一次给出多个统计数据。我想我需要在某种程度上使用
重塑
。一种方法,遵循您的指导:
*clear all
set more off
input ///
score1 score2 value1 value2 speed1 speed2
5 8 346 235 80 89
2 10 642 973 65 78
end
list
summarize
*-----
collapse (mean) score1m=score1 score2m=score2 ///
value1m=value1 value2m=value2 ///
speed1m=speed1 speed2m=speed2 ///
(max) score1max=score1 score2max=score2 ///
value1max=value1 value2max=value2 ///
speed1max=speed1 speed2max=speed2
gen obs = _n
reshape long score@m score@max value@m value@max speed@m speed@max, i(obs) j(n)
drop obs
list
询问几个统计数字很容易。使用[(stat)]target_var=varname
语法,这样在询问多个统计信息时不会得到冲突的名称。然后,重塑
如果有许多变量/主题,它将变得非常乏味。还有其他方法。如果到时候没有人发布备选方案,我将在稍后修改答案。按照您的建议,单向修改:
*clear all
set more off
input ///
score1 score2 value1 value2 speed1 speed2
5 8 346 235 80 89
2 10 642 973 65 78
end
list
summarize
*-----
collapse (mean) score1m=score1 score2m=score2 ///
value1m=value1 value2m=value2 ///
speed1m=speed1 speed2m=speed2 ///
(max) score1max=score1 score2max=score2 ///
value1max=value1 value2max=value2 ///
speed1max=speed1 speed2max=speed2
gen obs = _n
reshape long score@m score@max value@m value@max speed@m speed@max, i(obs) j(n)
drop obs
list
询问几个统计数字很容易。使用[(stat)]target_var=varname
语法,这样在询问多个统计信息时不会得到冲突的名称。然后,重塑
如果有许多变量/主题,它将变得非常乏味。还有其他方法。如果到时候没有人发布替代方案,我将在稍后修改答案。这从Roberto的示例玩具数据集开始。我认为它更容易推广到800个对象。(顺便说一下,在Stata
\n
中,始终且仅指当前数据集或组中由By:
定义的观察数,因此您的用法是轻度语法滥用。)
这从Roberto的示例玩具数据集开始。我认为它更容易推广到800个对象。(顺便说一下,在Stata
\n
中,始终且仅指当前数据集或组中由By:
定义的观察数,因此您的用法是轻度语法滥用。)
哇-非常感谢你。这很好用!因为有很多变量-有800个,所以我将从1到800。哇-非常感谢。这很好用!因为有很多变量-有800个,所以我将从1到800。感谢您的回答和对
\n
的澄清。感谢您的回答和对\n
的澄清。