Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:李依 (华中科技大学)
邮箱:ellie@hust.edu.cn
目录
encode
命令可以将字符型变量转换为数值型变量。具体地,将字符变量的不同取值,按照字母排列顺序分别映射到数值 1, 2,...,并为生成的数字变量添加值标签。
encode
命令语法:
encode varname [if] [in] , generate(newvar) [label(name) noextend]
varname
:需要转换为数值的分类/标识符变量;generate(newvar)
:生成新的变量 (newvar)
;label(name)
:按照变量值标签 name
中的 “字符串-数值” 的对应关系来转换 (默认按照字母排序转换)。encode
命令案例:
. * 数据基本情况
. webuse hbp2, clear
. list in 1/10, noobs
+--------------------------------------------------------------+
| id city year age_grp race hbp sex |
|--------------------------------------------------------------|
| 8008238923 1 1993 15–19 Black No female |
| 8007143470 1 1992 30–34 . No |
| 8000468015 1 1988 25–29 Black No male |
| 8006167153 1 1991 25–29 Black No male |
| 8006142590 1 1991 20–24 Black No female |
|--------------------------------------------------------------|
| 8007340259 2 1993 30–34 Black No female |
| 8004411604 1 1990 20–24 Black No male |
| 8006962950 5 1992 25–29 Black No female |
| 8005012348 5 1991 20–24 Black Yes female |
| 8003187296 2 1990 25–29 Hispanic No female |
+--------------------------------------------------------------+
. * 查看数据:变量 sex 为字符型变量,包括两个取值,没有值标签
. describe sex
. list sex in 1/10, noobs
. * 基于字符型变量 sex 生成数值型变量 gender,并创建值标签 sexlbl
. encode sex, generate(gender) label(sexlbl)
. describe gender
. label list
sexlbl:
1 female
2 male
sencode
命令可将字符型变量按字母顺序或其他非字母顺序编码为数值型变量。从数值到字符串的映射可以是一对一的 (按字符串第一次出现的顺序编码),也可以是多对一的 (按字符串位置编码,或者按指定的顺序编码)。
sencode
命令安装:
ssc install sencode, replace
encode
命令语法:
sencode varname [if] [in], {generate(newvar) | replace} [label(name) gsort(gsort_list) manyto1]
varname
:需要转换为数值的分类/标识符变量;generate(newvar)
:生成新的变量 (newvar)
;replace
: 数值变量替换字符变量;label(name)
:按照变量值标签 name
中 “字符串-数值” 的对应关系转换;gsort(gsort_list)
: 为字符型变量的非缺失值的数字代码分配指定一个通用的排序;manyto1
: 指定数值到字符串的映射是多对一的,即每个字符串有多个数字代码,对应该字符串值在数据集中的位置。encode
命令案例:
. webuse hbp2, clear
. sencode sex , gene(gender1) // 一对一转换
. sencode sex , gene(gender2) many // 一对多转换
. lab list gender1 gender2
gender1:
1 female
2 male
gender2:
1 female
2 male
3 male
4 female
5 female
6 male
...
1126 male
1127 female
1128 female
. sysuse auto.dta, clear
. sencode make, gene(makeseq1) // 默认按照字母排序
. sencode make, gene(makeseq2) gsort(-foreign) // 先按 foreign 降序,再按字母排序
. list make foreign makeseq1 makeseq2 in 1/10, nolab
+-----------------------------------------------+
| make foreign makeseq1 makeseq2 |
|-----------------------------------------------|
1. | AMC Concord 0 1 23 |
2. | AMC Pacer 0 2 24 |
3. | AMC Spirit 0 3 25 |
4. | Buick Century 0 4 26 |
5. | Buick Electra 0 5 27 |
|-----------------------------------------------|
6. | Buick LeSabre 0 6 28 |
7. | Buick Opel 0 7 29 |
8. | Buick Regal 0 8 30 |
9. | Buick Riviera 0 9 31 |
10. | Buick Skylark 0 10 32 |
+-----------------------------------------------+
encoder
命令可以将字符型变量转换为数值型变量。encoder
命令与 encode
命令具有以下差别:encoder
命令包括 replace
选项替换现有变量;encoder
命令可以设置编码值从 0 开始。encoderall
命令可以一次性批量转换多个字符型变量,并替换原有字符型变量。
encoder
命令安装:
ssc install elabel, replace
ssc install encoder, replace
encoder
命令语法:
encoder varname [if] [in] , [generate(newvar) label(name) noextend replace setzero]
varname
:需要转换为数值的分类/标识符变量;generate(newvar)
:生成新的变量 newvar
;label(name)
:按照变量值标签 name
中的 “字符串-数字” 的对应关系转换;noextend
: 指定如果分类/标识符变量的值未出现在 label(name)
中,则不被编码;replace
: 指定输出的数值变量替换输入的字符型变量;setzero
: 指定排序后的值应该从 0 始,如未指定则编码值将从 1 开始。encoderall
命令语法:
encoderall [varlist] [if] [in] , [label(name) noextend noextendall setzero]
label(name)
:按照变量值标签 name
中的 “字符串-数字” 的对应关系转换;noextend
: 指定如果分类/标识符变量的值未出现在 label(name)
中,则不被编码;noextendall
: 表示所有变量都使用现有标签进行编码;setzero
: 指定排序后的值应该从 0 开始,如未指定则编码值将从 1 开始。encoder
命令案例:
. * 先看一下数据基本情况
. use https://stats.idre.ucla.edu/stat/stata/faq/hsbs, clear
. list in 1/5, noobs
+-----------------------------------------------+
| id gender race schtyp read science |
|-----------------------------------------------|
| 70 m 1 pub 45 47 |
| 121 f 1 pub 68 63 |
| 86 m 1 pub 44 58 |
| 141 m 1 pub 63 53 |
| 172 m 1 pub 47 53 |
+-----------------------------------------------+
. * 将字符型变量 gender 转换为数值型变量,并添加值标签sexlbl
. encoder gender, replace label(sexlbl)
. label list sexlbl
sexlbl:
1 f
2 m
. * 将字符型变量 gender 转换为数值型变量,且编码表示为 0-1
. use https://stats.idre.ucla.edu/stat/stata/faq/hsbs, clear
. encoder gender, replace setzero
. label list gender
gender:
0 f
1 m
encoderall
命令案例:
. use https://stats.idre.ucla.edu/stat/stata/faq/hsbs, clear
. encoderall, setzero
. label list
science:
1 . //此处未显示编码为 0 的变量值,因为字符型变量 science 中有缺失值
2 31
3 39
4 47
...
read:
0 34
1 42
2 44
3 45
4 47
...
schtyp:
0 pri
1 pub
Note:产生如下推文列表的 Stata 命令为:
lianxh 标签 转换, m
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
和songbl
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh