其他
egenmore隐藏功能——进制转换
本文作者:朱巧利
文字编辑:张馨月
技术总编:李朋冲
一、egenmore base()
clear
set obs 20
gen v = _n //创建一个包含20个观测值的数据集
egen binary = base(v) //binary为生成的二进制数据的变量名
egen four = base(v), base(4) //转为四进制
egen six = base(v), base(6) //转为六进制
egen eight = base(v), base(8) //转为八进制
二、egenmore decimal()
ssc install deci,replace
clear
set obs 20
gen v = _n
egen binary = base(v)
egen deci = decimal(binary)
clear
set obs 20
gen v = _n
egen binary = base(v)
*拆分数字串
forvalues i = 1/5{
gen str1 code`i' = substr(binary,`i',1)
}
*依次将每个数字由字符型转为数值型
forvaluesi = 1/5{
gen byte byte`i' = real(substr(binary,`i',1))
}
egen decim = decimal(byte1-byte5)
当然,如果原来的变量是数值型的二进制,就可以直接利用decimal()来进行转换了。如果想改变decimal()函数的默认二进制,与base()函数一样,只需在命令后加上[,base(#)]即可,中间的拆分过程同上述一样。例如把八进制转为十进制,命令为:
egen decim = decimal(q1-q8), base(8) //注意q1-q8是根据情况改变的
至此就把Stata中进制转换的两个法宝介绍完了,大家快快收下这个隐藏功能吧~
自科基金项目信息爬取
rename group批量修改变量名
小命令,大不同——insobs插入新值
新的一年,效率满满~(上)
关于我们
微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。