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
比如将一批变量的 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
相关文章推荐
- SQL C# nvarchar类型转换为int类型 多表查询的问题,查询结果到新表,TXT数据读取到控件和数据库,生成在控件中的数据如何存到TXT文件中
- 生成二维码 加密解密类 TABLE转换成实体、TABLE转换成实体集合(可转换成对象和值类型) COOKIE帮助类 数据类型转换 截取字符串 根据IP获取地点 生成随机字符 UNIX时间转换为DATETIME\DATETIME转换为UNIXTIME 是否包含中文 生成秘钥方式之一 计算某一年 某一周 的起始时间和结束时间
- Go语言学习笔记 --- 常量、变量、批量定义与声明、数据类型、类型别名、类型转换
- 数据类型、变量、常量、数据类型转换
- 黑马程序员——OC语言日志——NSString字符串的截取、替换,数据类型转换等一些用法
- (2)变量、数据类型、转义符、类型转换
- Struts2数据类型转换之批量数据转换
- 解决itext-rtf.jar 对html转换后生成rtf文档 其中表格行列合并的问题
- 数据库的连接、索引和Redis的五种数据类型及其操作命令、使用场景
- 转换SQL命令中的数据类型出现的错误
- java主类结构、基本数据类型、 变量与常量、运算符、数据类型转换、代码注释与编码规范
- 【Web前端学习笔记】Javascript_01_变量,数据类型,类型转换
- Struts2数据类型转换之批量数据转换
- php总结2——php中的变量、数据类型及转换、运算符、流程控制中的分支结构
- [SQL]不要让SQLServer帮你自动转换SQL命令中的数据类型
- 数据库之函数、数据类型转换
- Day3、C语言数据类型、变量的输入与输出、进制的转换
- JAVA基础入门常量、变量、数据类型转换相关
- javascript学习(1)——[基础回顾]变量、声明、数据类型、类型转换
- void相关的无类型变量在使用时必须强制数据类型转换问题。