type mismatch、contains nonnumeric characters; no replace怎么解决


## *经常在生成新变量的时候出现type mismatch,怎么解决,
*给出三种解决方法

*第一种 用destring,语句如下:(变量名称都叫var)
destring var,replce
**这个语句之后会出现两种情况,一种就是成功改变变量类型
**第二种情况就是出现“var contains nonnumeric characters; no replace”
***出现第二种情况有两种解决方法:
**第一种简单粗暴,后期需要前后对比数据是否准确
encode var ,gen (var1)
*这时候数据类型将改变成为long,再生成新变量
gen float var_new = var1
tab var_new
*这时候就可以生成一个数据类型是对的变量
*上面方法有时候会出错,还有一种比较详细的办法:
gen byte notnum = real(var) == .
*找出新变量出错的地方(假设出错是一个变量的选项为1,2)
replace var = "." if var == "1,2" 
**记得加“ ”这个,将数据出现问题的地方用缺失值加以替代
destring var ,replace
*再对数据进行替换就可以了
ta var 
**再更新一种:
gen Year=real(substr(Accper,1,4))
  • 9
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值