楼主: bambooryz
35718 9

[字符问题求助] 用encode把字符型变量改成数值变量的问题 [推广有奖]

  • 0关注
  • 0粉丝

小学生

21%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
89 点
帖子
4
精华
0
在线时间
6 小时
注册时间
2012-3-11
最后登录
2018-9-25

楼主
bambooryz 发表于 2013-7-17 10:57:09 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
用encode(var1),generate(var2),总是出错
我想改的不是变量名,而是变量名下面的每一个变量,这些变量都对应一个代码
比如我有个变量时industry,我就想把下面每一个industry变成一个数字代码
那应该是encode(industry=Oil and Gas Exploration),generate(industry=6004)吗,我试了很多种都不成功
用encode有错吗,还是应该用其他的呢?
谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:encode 字符型变量 数值变量 code ODE encode

沙发
蓝色 发表于 2013-7-17 11:26:17
. sysuse auto
(1978 Automobile Data)

. encode make,gen(makeid)

. label drop makeid

. list make makeid in 1/10

     +------------------------+
     | make            makeid |
     |------------------------|
  1. | AMC Concord          1 |
  2. | AMC Pacer            2 |
  3. | AMC Spirit           3 |
  4. | Buick Century        7 |
  5. | Buick Electra        8 |
     |------------------------|
  6. | Buick LeSabre        9 |
  7. | Buick Opel          10 |
  8. | Buick Regal         11 |
  9. | Buick Riviera       12 |
10. | Buick Skylark       13 |
     +------------------------+

藤椅
bambooryz 发表于 2013-7-17 22:32:35
蓝色 发表于 2013-7-17 11:26
. sysuse auto
(1978 Automobile Data)
不好意思,我没怎么看明白呢~能文字解释下吗?

板凳
蓝色 发表于 2013-7-17 23:58:58
make 是汽车的牌子
我那不是用命令给不同汽车品牌给予数值的编码吗

报纸
bambooryz 发表于 2013-7-20 12:33:33
蓝色 发表于 2013-7-17 23:58
make 是汽车的牌子
我那不是用命令给不同汽车品牌给予数值的编码吗
多谢啦,我一用这个命令,那些相对应的industry的编码就自己出来了~但不是按照1,2,3,4...这种,是他自己的编码,可能是

地板
老树皮 发表于 2013-7-20 14:21:51
bambooryz 发表于 2013-7-20 12:33
多谢啦,我一用这个命令,那些相对应的industry的编码就自己出来了~但不是按照1,2,3,4...这种,是他自己的 ...
如果你已经有一个行业列表的话,就把两个数据merge起来;如果没有的话,就只能
gen ind=.
replace ind=?? if industry==""

不过我估计你属于第一种情况,所以假设你又一个行业列表文件(假设叫作ind),包括两个变量:industry(字符)和ind(数字),现在仅需要将你的主文件和这个文件都对industry排序:sort industry,然后
merge industry using ind
就可以了

7
lclray3 发表于 2013-7-20 14:46:05
正解,谢谢分享

8
bambooryz 发表于 2013-7-22 10:29:01
bambooryz 发表于 2013-7-20 12:33
多谢啦,我一用这个命令,那些相对应的industry的编码就自己出来了~但不是按照1,2,3,4...这种,是他自己的 ...
您好,我这样使用时候呢,出现的是:
note: you are using old merge syntax; see [D] merge for new syntax)
variable industry does not uniquely identify observations in the master
    data
file industryid.dta not found
r(601);
我做了之前的那一步后没有得到一个新的文件啊,只是查看原数据,发现多了一行industryid,就是那些industry的编码诶~

9
郭东东 发表于 2017-11-26 13:05:48
我觉得可以先用 egen industry1=group(industry),这将行业数据转换成1,2,3...
然后再用replace命令?我也是初学,希望有帮助

10
windtalker312 发表于 2019-3-9 09:57:19
学习啦

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-6 05:55