您的位置:首页 > 数据库

STATA 批量重命名,数据查重,行列转换,类型转换,变量截取和生成,数据库合并等命令

2013-12-11 12:52 429 查看
一、变量批量重命名:

    比如将一批变量的 a_2  b_2  c_2 d_2 e_2的后缀改为w

   ren (*_2) (*w)

二、检查重复数据常用命令:

   duplicates report x         //报告x变量有无重复

  duplicates list  x             //列出重复的记录

  bys x: gen cn=_N

  browse if cn>1

 drop cn                            //浏览具体的重复值,以便下一步分析和处理

 duplicates drop x          //删除重复值,保留重复值的第一条记录

三、数据横纵向转换:

           long

        +------------+                                   wide

        | i  j  stub |                            +----------------+

        |------------|                          | i  stub1 stub2 |

        | 1  1   4.1 |     reshape      |----------------|

        | 1  2   4.5 |   <--------->      | 1    4.1   4.5 |

        | 2  1   3.3 |                          | 2    3.3   3.0 |

        | 2  2   3.0 |                            +----------------+

        +------------+

reshape之前要检查j,stub有无重复记录,有重复无法reshape。

 纵向转成横向——如果J里面是汉字的话首先要将变量重新命名为英文字母(rt)或者数字的才可以打横后当做变量名:

                               gen rt="BP" if j=="血压"

                              replace rt="height" if j=="身高"

                          reshape wide 所有同一个i对应不一致的变量,i() j() string               //如果j是string,后面要加string 标记

横向转成纵向——要把横向数据命名为 stub1 stub2等比较整齐的名称,生成一个新的J变量。

                         reshape long stub, i( )   j(新变量名)

四、数据类型转换: destring, replace force

                                     tostring, replace force

五、截取生成新变量:例如血压(BP)130/85截取为高压(SBP)和低压(DBP)

                               gen sbp=real(substr(bp,1,3))   

                              gen dbp=real(substr(bp,-2,2)) 

六、计算生成新变量:例如用身高和体重的数据计算BMI

                               gen bmi=weight^10000/(height^2)            //体重乘以一万除以身高的平方

七、数据库合并:

     merge:加入新变量             append:变量不变,加入新纪录

 merge 1:1/1:m/m:1 barcode using "file.dta"      //merge所用的变量一定不能重复,要先处理

append using filename

八、计算变量X中相同的记录数:

例如变量x代表体检编号,有几个相同的体检编号就代表这个人体检了几次,现在要筛选出体检次数超过三次的人

    gen N=_N

  by tjid, sort: gen N1=_N           // N1即代表每个tijd有多少个观测值

drop if N1 <=3 或者 keep if N1 >=3

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  stata 常用命令
相关文章推荐