字符串相关函数
数字字符串与数字之间的转换
destring 字符转数字
Tostring 数字转字符串
eg. tostring year,replace
eg. destring year,replace
分列
split,只适用于字符串
函数内容
split strvar [if] [in] , p( "a" ) 以a为分列点
eg. split type,p("室" "厅" "卫")
改一下变量名
提取:substr
函数内容
eg. gen n=substr(num,3,.)
替换:subinstr
函数内容
eg. gen n1=subinstr(num,"sh","00",.)
在字符串中寻找特定字符
替换变量: 同excel-样 “?”、“*”
*
"a*" :ab, a ,ass (以a开头)
“*a”" :ca,a, (以a结尾)
"*a*" ggass,a... ( 包含a即可)
?
"a?" :ab (以a开头,后有1个字符)
"a? ?" :amm (以a开头,后有2个字符)
函数内容:
eg. gen chaoxiang=strmatch(dir,"*南*")
eg. keep if strmatch(dir,"*南*”) 只保留带南向的
数据分类,指示变量
虚拟变量——判断变量
判断price大于100的 自动判断,满足条件则返回1
eg. gen 一百万=1 if price>100
replace 一百万=0 if price<=100
label define h 0"便宜" 1"好贵"
label value 一百万 h
分类变量
generate+ replace
函数内容
eg. gen niandai=0
replace niandai=2 if year<2000
replace niandai=1 if year>=2000
recode
函数内容
eg. recode year(1/2000=1)(2000/2010=2)(2010/2020=3),gen(niandai2)
group
group(x)建立一个分类变量,将排序后的数据分为尽量等规模的X个样本(根据样本量来分类)
eg. sort year
gen m3=group(5)
autocode
函数内容
autocode ( x,n,xmnin,xmax )
X:根据x变量分类
N:分为n类
Xmin. Xmax :根据规定的值域来分成等间距n份。并求出x值所在区间的上限
eg. gen price2=autocode(price,5,10,480)
数据合并
横向合并
merge
两个数据文件合并一起,合并后可能变量变多,数据文件变宽了,需要有一 个变量作为参考.以此变量进行识别 (数据匹配)
函数内容
Merge=1不吻合,内存内数据存在的个案
Merge=2 不吻合,内存外数据存在的个案
Merge=3 吻合
eg. use data0201
merge 1:1 num using data0202
纵向合并
append
函数内容
前提工作
两个文件需要有相间的变量名
变量类型一定要一致
变量的num不重复
eg. use 0301
append using data0302
交叉合并
joinby组内合并
函数内容
比如两个样本都有分组,每一组里的样本交叉对应,取交集
举个栗子:根据两个家庭的编号,把父母和孩子配对
eg. joinby famliyID using data0502