Stata中使用destring转换字符串时保留小数的问题
解决Stata中GDP大数字转换后显示为科学计数法的问题
嘿,我刚看到你的问题,作为Stata老用户太懂这种新手困惑了!其实你遇到的不是destring没识别小数的问题,而是Stata对超大数字的默认显示格式在搞鬼——数据本身已经被正确转换了,只是显示方式让你误以为小数被合并成整数了。
给你一步步拆解解决方案:
先确认数据实际存储值
先别着急怀疑转换失败,输入命令查看单个观测的实际数值:display yr2020[1] // 把yr2020换成你的实际年份变量名你会发现输出的数值其实和原数据的
205276172134.901是一致的,只是Stata默认对超过一定位数的数字用科学计数法显示而已。修改变量显示格式
要让大数字以常规的带小数格式显示,用format命令自定义显示格式就行,比如:// 显示20位数字,保留3位小数 format yr* %20.3f // 如果需要加千分位分隔符,用这个 format yr* %22.3fc这里的
yr*是匹配所有年份变量,你也可以指定单个变量名;%20.3f里的20是总位数,3是保留的小数位数,你可以根据自己的数据调整位数。额外排查:确保原字符串格式正确
如果你执行上面的操作后还是有问题,那可以检查原始字符串的格式,看看是不是有隐藏字符或者小数分隔符异常:// 以字符串格式查看原始数据(如果还没覆盖的话) list yr* %20s in 1/5确认所有带小数的数值都是用英文句号
.作为分隔符,set dp period命令其实是设置输入输出的小数分隔符,如果你原数据的分隔符本来就是句号,那这个命令确实不会有明显效果。
总结一下:你的destring命令其实已经成功把字符串转换成数值了,只是大数字的默认显示格式误导了你,调整format就能解决问题啦!
内容的提问来源于stack exchange,提问作者Cezary Baraniecki
相关产品推荐
相关产品推荐

