楼主: 匿名
6701 9

[Stata] Stata基础操作:数据管理(二) [推广有奖]

匿名网友
楼主
匿名网友  发表于 2015-9-24 20:15:50 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

Stata基础操作:数据管理(二)

Stata WorkShop2:Data Management

Chang Y. Chung

Princeton University

/*在当前工作路径下建立dm文件夹并进入*/
  1. cap findfile dm
  2. if "`r(filename)'" == "" mkdir dm
  3. cd dm
复制代码
/*下载数据、解压、进入解压包*/
  1. copy "https://codeload.github.com/Chang-Y-Chung/dm/zip/master" "dm-master.zip"
  2. unzipfile "dm-master.zip", replace
  3. cd dm-master
复制代码
/*显示自带及部分下载数据集*/
  1. sysuse dir,all
复制代码
/*Some Variables from auto.dta*/

  1. sysuse auto, clear
  2. describe make price mpg foreign
复制代码

1.PNG




/*tabulate(含标签)*/
  1. sysuse auto, clear
  2. tabulate foreign
复制代码

2.PNG


/*tabulate(不含标签)*/
  1. sysuse auto, clear
  2. tabulate foreign, nolabel
复制代码

3.PNG


/*summarize*/
  1. sysuse auto, clear
  2. summarize price mpg
复制代码

4.PNG


/*其它一些有用的命令*/
  1. sysuse auto, clear
  2. describe make mpg price
  3. inspect make mpg price
  4. codebook make mpg price
复制代码
/* 输出到EXCEL-export excel与import excel 为Stata12新增*/
  1. sysuse auto, clear
  2. keep make price foreign
  3. keep in 1/5
  4. export excel using auto.xls, replace first(var)
  5. !start auto.xls // windows
  6. /* !open auto.xls // mac */
复制代码

xls.png


/*输入EXCEL文件中的数据*/
  1. import excel using auto.xls, clear firstrow
  2. describe
复制代码

7.PNG

菜单操作:File------>Import--------->EXCEL spreadsheet(*.xls,*.xlsx)

/*常见数据集的处理情形*/

appendMerge.png



/*Append 举例*/
  1. /*奇数集*/
  2. use http://www.stata-press.com/data/r13/odd1.dta, clear
  3. keep in 1/3
  4. list
  5. save odd.dta, replace
复制代码

6.PNG


  1. /*偶数集*/
  2. clear all
  3. input number even odd
  4. 4 10 .
  5. 5 12 .
  6. end
  7. list
  8. save even.dta, replace
复制代码

9.PNG


  1. /*将偶数集追加到奇数集中*/
  2. use odd.dta, clear
  3. append using even.dta, generate(obsFrom)
  4. list
复制代码

10.PNG


  1. /*关于Append追加 */
  2. 语法: append using filename [, options]
  3. 将硬盘中的副数据集(即上式using后的数据集)添加到内存中的数据集(主数据集)

  4. 1.新的主数据集添加更多观测值
  5. 2.变量间的匹配的依照变量名(而不是变量序号)
  6. 3.没有的变量也会以缺失值代替
复制代码
/*Merge 举例*/

merge.png


  1. cd dm-master   // 解压文件夹为dm-master
  2. use age, clear // 主数据集
  3. merge 1:1 id using weight, report
  4. save ageWeight, replace
复制代码

merge.JPG

  1. input region  x
  2.       1   15
  3.       2   13
  4.       3   12
  5.       4   11   
  6. end
  7. save z,replace
  8. clear all
  9. input id  region  a
  10.            1    2  26
  11.            2    1  29
  12.            3    2  22
  13.            4    3  21
  14.            5    1  24
  15.            6    5  20
  16. end
  17. merge m:1 region using z ,report keepusing(region x)
  18. sort id,stable               
  19. browse
复制代码
/*关于merge(横向)*/
  1. 句法:merge 1:1 varlist using "using file name", report或者merge m:1 varlist using "using file name", report
  2. 依照主/副数据集相同变量加以横向合并,
  3. 主数据集中的数据是不可更改,将一同出现在新数据集
  4. 默认情况下会自动产生一个含以下序号的_merge变量,意义分别为:
  5. 序号1-指master-代表该值仅存在于主数据集
  6. 序号2-指using-代表该值仅存在于副数据集
  7. 序号3-指master-代表该值同时存在于副数据集和主数据集
复制代码
/*数据输入*/
infile:
  1. infile str14 country setting effort change using test.raw, clear
  2. list in 1/3
复制代码

11.PNG


  1. /*自由文本格式Free-format*/:
  2. 1.指每个变量的值均以空格/Tab/逗号分开
  3. 2.如果嵌入空格或逗号,那么字符数据值会加引号
  4. 3.如果不同观测值已经以行划分开,应考虑使用import delimited(自Stata13起取代insheet)
复制代码
  1. /*固定格式文本数据:Fixed Column Format*/
  2. //固定格式指每个变量的值均在固定的列,有时需要用字典文件(.dct)加以描述
  3. //输入:以test.raw为例
  4. infile using test.dct, clear
  5. //查看:
  6. type test.dct
复制代码

dictionary.png

testRaw.png


注:固定与自由格式是ASCII格式的两种分类

1.png


  1. *expand:拓展数据,以下述韦恩图的绘制为例,将整理后的数据集中的每一类观测值按(freq频数倍)复制,还原为初始数据集
  2. //Venn diagram using venndiag 维恩图
  3. ssc install venndiag
  4. clear
  5. input hayfever  eczema  freq
  6. 1        0      31088
  7. 1        1      9863
  8. 0        1     43522
  9. 0        1       9258
  10. 0        0     35299
  11. 1        0     11024
  12. 1        1     6200
  13. 0        0     345262
  14. end
  15. list
  16. expand freq
  17. venndiag hayfever  eczema
复制代码

expandCollapse.png


  1. *collapse——建立包含描述性统计结果的数据集
  2. sysuse auto
  3. gen lprice=ln(price)
  4. collapse(max) max_lprice=lprice max_mpg=mpg ///
  5.         (iqr) iqr_lprice=lprice iqr_mpg=mpg ///
  6.          if !missing(rep78) ,by(rep78)         
  7. sort rep78
  8. list
  9. save 1.dta,replace  //保存
  10. /*将lprice 和mpg 的最大值和四分位间距(iqr)提取出,命名为max_lprice/max_mpg/iqr_mpg/iqr_lprice.
  11. 注:四分位间距:即上四分位数与下四分位数之间的差值,四分位数越大,说明数据离散程度越大*/
复制代码
  1. *contract_生成包含百分数与频数的数据集

  2. sysuse auto
  3. contract rep78 foreign //也可附加freq()选项以对频数变量命名,默认为_freq
  4. list,sep(0)

  5. //转换为原数据
  6. expand _freq  //按上述默认的频数变量值倍还原
复制代码

crossJoinby.png

  1. /*joinby--->m:m 多对多合并*/
  2. /*务必对关键变量family-ID加以排序*/
  3. webuse set http://www.stata-press.com/data/dmus

  4. webuse parname
  5. sort famid
  6. save parnamesort

  7. webuse kidname
  8. sort famid
  9. save kidnamesort

  10. use parnamesort
  11. joinby famid using kidnamesort
复制代码
  1. /*cross   ------->一一交叉
  2. 可用于数据集间不同变量相互交叉组合的可能性分析,因此两个数据集中的变量名最好不同,如下为4*4组合*/
  3. webuse set http://www.stata-press.com/data/dmus
  4. webuse moms1
  5. list
  6. save moms1,replace
  7. webuse dads1
  8. list
  9. save dads1,replace
  10. webuse moms1
  11. cross using dads1
  12. list
复制代码

reshape.png

  1. // Reshaping long to wide
  2. webuse set  http://www.stata-press.com/data/dmus
  3. webuse cardio_long
  4. describe
  5. list in 1/10
  6. reshape wide bp pl, i(id) j (trial)
  7. reshape long
  8. *Data management using Stata Page 258
复制代码
  1. // Reshaping long to wide
  2. webuse set  http://www.stata-press.com/data/dmus
  3. webuse cardio_wide
  4. describe
  5. reshape long bp pl, i(id) j(trialnum)
  6. reshape wide
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Stata基础 Stata 基础操作 tata 数据管理 富阳

已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
我的素质低 + 100 + 100 + 5 + 5 + 5 精彩帖子
xddlovejiao1314 + 100 + 100 + 5 + 5 + 5 精彩帖子

总评分: 经验 + 200  论坛币 + 200  学术水平 + 10  热心指数 + 10  信用等级 + 10   查看全部评分

本帖被以下文库推荐

沙发
rrjj101022 发表于 2015-9-24 20:30:32
谢谢分享~~~
已有 2 人评分经验 论坛币 热心指数 收起 理由
xddlovejiao1314 + 10 + 3 鼓励积极发帖讨论
niuniuyiwan + 10 + 1 热心帮助其他会员

总评分: 经验 + 10  论坛币 + 13  热心指数 + 1   查看全部评分

藤椅
lwzxy 发表于 2015-9-24 20:47:15
谢谢分享
已有 2 人评分经验 论坛币 热心指数 收起 理由
xddlovejiao1314 + 10 + 3 鼓励积极发帖讨论
niuniuyiwan + 10 + 1 鼓励积极发帖讨论

总评分: 经验 + 10  论坛币 + 13  热心指数 + 1   查看全部评分

板凳
xddlovejiao1314 学生认证  发表于 2015-9-24 21:27:10
好贴,谢谢分享。
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
niuniuyiwan + 100 + 10 精彩帖子
我的素质低 + 5 + 5 + 5 精彩帖子

总评分: 经验 + 100  论坛币 + 10  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

报纸
niuniuyiwan 在职认证  发表于 2015-9-25 08:56:35
xddlovejiao1314 发表于 2015-9-24 21:27
好贴,谢谢分享。
感谢师兄,真诚到永远!
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
我的素质低 + 5 + 5 + 5 精彩帖子

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

地板
我的素质低 学生认证  发表于 2015-9-25 08:58:02
niuniuyiwan 发表于 2015-9-25 08:56
感谢师兄,真诚到永远!
  
已有 1 人评分论坛币 热心指数 收起 理由
niuniuyiwan + 10 + 5 观点有启发

总评分: 论坛币 + 10  热心指数 + 5   查看全部评分

7
shajia2008 在职认证  发表于 2015-10-5 16:30:44
谢谢分享!
已有 1 人评分经验 论坛币 热心指数 收起 理由
niuniuyiwan + 100 + 10 + 1 精彩帖子

总评分: 经验 + 100  论坛币 + 10  热心指数 + 1   查看全部评分

8
我家滴草莓 发表于 2015-10-5 23:42:28
很详细啊,受教了!谢谢!
已有 1 人评分经验 论坛币 热心指数 收起 理由
niuniuyiwan + 100 + 10 + 1 精彩帖子

总评分: 经验 + 100  论坛币 + 10  热心指数 + 1   查看全部评分

9
楚天江南客 学生认证  发表于 2017-6-28 15:20:14
stata中字典文件是怎么创立的?

10
安宁 发表于 2017-8-18 11:32:19
好贴,谢谢分享

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-5 18:56