楼主: zjdxj0405
2171 8

[编程问题求助] 请教stata命令 [推广有奖]

  • 1关注
  • 1粉丝

已卖:26份资源

博士生

19%

还不是VIP/贵宾

-

威望
0
论坛币
7 个
通用积分
0.0127
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2059 点
帖子
95
精华
0
在线时间
327 小时
注册时间
2014-2-20
最后登录
2024-4-14

楼主
zjdxj0405 发表于 2017-3-12 18:24:23 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请教各位大神,如果想生成一个新变量do,当city是北京时赋值do为800;当city是南京时,赋值doy为700;当city是上海时,赋值do为600,这个命令应该怎么写?大概有一百多个城市
我试着写了replace do=800 if city=="北京",显示类型不匹配,需要怎样将city中的字符型北京转换为数字呢,这个命令好像也不行destring city, replace force,求大神指导
二维码

扫码加我 拉你入群

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

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

关键词:stata命令 Stata tata destring replace

沙发
黃河泉 在职认证  发表于 2017-3-12 18:36:31
请用
  1. encode city, gen(id)
复制代码

藤椅
shandianxia 发表于 2017-3-12 18:56:49
你写的replace do=800 if city=="北京"中“==”是赋值的含义,你试试“=”

板凳
黃河泉 在职认证  发表于 2017-3-12 19:04:32
shandianxia 发表于 2017-3-12 18:56
你写的replace do=800 if city=="北京"中“==”是赋值的含义,你试试“=”
你的讲法不太对!原先的写法看起来是没问题的!我怀疑是一开始 do 的产生有问题!或许应该先
  1. gen do = .
复制代码

报纸
黃河泉 在职认证  发表于 2017-3-12 19:06:34
shandianxia 发表于 2017-3-12 18:56
你写的replace do=800 if city=="北京"中“==”是赋值的含义,你试试“=”
应该不是这样!楼主的语法应该没错,我猜测应该是 do 的产生有问题!楼主应该试试
  1. gen do = .
复制代码

地板
xingxf 发表于 2017-3-12 21:30:36
上传个例子吧。你现在的“北京”可能已经是被encode过了的,所以不是字符串。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
黃河泉 + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

7
xingxf 发表于 2017-3-12 21:31:50
shandianxia 发表于 2017-3-12 18:56
你写的replace do=800 if city=="北京"中“==”是赋值的含义,你试试“=”
你整说反了,Stata中“=”是赋值,“==”是条件。

8
Terry950901 在职认证  发表于 2017-3-12 22:13:46
楼主,试试replace do=800 if substr(city,1,4)=="北京"

9
zjdxj0405 发表于 2017-3-15 09:38:44
非常感谢大家,已经解决了

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

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