在科学研究中免不了和数据打交道,收集到原始数据往往不能直接使用,我们经常需要对其进行清洗、转换才能得到我们需要的数据。既往我们已经介绍了通过R进行数据转换,今天来介绍一下通过stata进行数据分组转换操作及分组统计。

在这里插入图片描述

继续使用我们的汽车销售数据来演示,先导入数据,我是直接粘贴
在这里插入图片描述
我们来看下数据,car就是汽车售价,age是年龄,gender是性别,inccat是收入,这里分成4个等级,ed是教育程度。
下面开始我们的转换:

  1. 假设我们想把年龄age分成5个组别,然后求出每个组别买车年龄的平均值
    先把年龄分组,生成5个年龄组
cluster kmeans age ,gen(group) k(5)

在这里插入图片描述
求每个组的购车平均售价

egen meancar=mean(car),by(group)

在这里插入图片描述
这样每个年龄组购车的平均售价就出来了,同理还可以求中位数,标准差等等很多内容,缺点是by参数只能分组一个变量,分组两个变量就会报错,不能计算标准误,需要手动计算
2. 假设我们想知道不同教育阶段购车年龄、价格的关系
如果不使用stat函数控制输出,默认的是输出平均值

tabstat car age , by( ed )

在这里插入图片描述
如果我们想多输出点内容,结果包含平均值和标准差、标准误,semean就是标准误的意思,等于standard error of mean (sd/sqrt(n))

tabstat car age , by( ed ) stat(mean sd semean)

在这里插入图片描述
Tabstat函数和egen函数的缺点都是只能分组一个变量,不能分组两个变量。
3. 假设我们想知道不同教育水平中,不同性别的人群购车关系
假设想知道不同教育水平中不同性别人群购车的平均价

collapse (mean) car= car ,by( ed gender )

在这里插入图片描述
我们还可以在这个基础上加入年龄

collapse (mean) car= car age=age,by( ed gender )

在这里插入图片描述
Collapse函数一次可以分组两个变量,但是不能出两个结果,如果你还想知道标准误的结果,只能再做一次,然后合并,这一点就比不上R了。不过也就是多做一次,也不麻烦。

collapse (semean ) se= car ,by( ed gender )

在这里插入图片描述
合并数据,其实很简单直接粘贴在Excel合并就好了。
在这里插入图片描述
OK,这样我们的数据转换就完成了,和我们用R语言做出来的一模一样哦,本章完结,如果觉得有用,记得分享给需要的人哦。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐