Stata字符型数据转为数值型数据

本文介绍了在Stata中处理数据时遇到的两个关键问题:如何使用encode将字符型GDP转换为数值并可能遇到的非数值字符问题,以及destring的使用来避免对数运算错误。通过实例演示了编码和去字符串化的过程,并提供了可能的解决方案和参考帮助文档。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文用于记录数据处理过程中出现的问题


目录

一、所用命令

二、实例

1. 使用encode

2. 使用destring

 三、可能存在的问题

1. 存在无法转成数值型的数据

2. 取对数时出错

四、参考


一、所用命令

encode varname [if] [in] , generate(newvar) [label(name) noextend]

  • 例子:encode gdp, g(newgdp)

destring [varlist] , {generate(newvarlist)|replace} [destring_options]

  • 例子:destring gdp, replace force (直接替换原数据)
  • 例子:destring gdp, g(newgdp) (另外生成新的一列)

二、实例

字符型数据在Stata中显示为红色,数值型为黑色

1. 使用encode

 输入以下命令,可得到转为数值型的人均GDP

encode PG, g(npg)

 

可发现数据为蓝色,此时数据也为数值型

2. 使用destring

输入以下命令,也可得到数值型的人均GDP

destring PG, g(npg2)

此时数据为黑色


 三、可能存在的问题

1. 存在无法转成数值型的数据

提示:contains nonnumeric characters; no generate

检查是否有15万这种以中文字符存在的数据

2. 取对数时出错

encode生成的数值型数据在取对数时会出现错误,如下图所示

原因不清楚,因此最好直接用destring

可能的原因来自Stata help encode的说明,如下:

Do not use encode if varname contains
    numbers that merely happen to be stored as strings; instead, use generate
    newvar = real(varname) or destring; see real() or [D] destring.


四、参考

Stata help文件的说明

help ecode
help destring

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值