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

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


目录

一、所用命令

二、实例

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中显示为红色,数值型为黑色

Stata字符型数据转为数值型数据_第1张图片Stata字符型数据转为数值型数据_第2张图片

1. 使用encode

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

encode PG, g(npg)

Stata字符型数据转为数值型数据_第3张图片 Stata字符型数据转为数值型数据_第4张图片

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

2. 使用destring

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

destring PG, g(npg2)

Stata字符型数据转为数值型数据_第5张图片Stata字符型数据转为数值型数据_第6张图片

此时数据为黑色


 三、可能存在的问题

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

提示:contains nonnumeric characters; no generate

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

2. 取对数时出错

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

Stata字符型数据转为数值型数据_第7张图片

原因不清楚,因此最好直接用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

你可能感兴趣的:(Stata,数据分析)