楼主: euroship
4926 5

[Stata初级班] 请教连老师一个关于keep的命令(如果Expression too long怎么办?) [推广有奖]

  • 0关注
  • 1粉丝

博士生

62%

还不是VIP/贵宾

-

威望
0
论坛币
2452 个
通用积分
24.1488
学术水平
3 点
热心指数
5 点
信用等级
1 点
经验
1717 点
帖子
100
精华
0
在线时间
514 小时
注册时间
2009-11-26
最后登录
2015-10-9

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
连老师,你好,

我最近在用CEPIIGravity Data数据分析中国东盟自贸区的出口效应。这个数据很庞大,我现在需要取出中国和东盟6国的三个变量:是否相邻contig,是否有共同语言comlang_off,还有加权的距离变量distw

我先保留出口国家和进口国家的ISO号码和时间year及三个相关的变量,用以下的简单命令
keep iso3_o iso3_d year contig comlang_off distw

我的问题:如何把中国和东盟6国保留在数据内,而把其他上百个无关国家删除呢?

如果用

keep if iso3_o == CHN IDN LAO PHL SGP THA VNM & iso3_d == CHN IDN LAO PHL SGP THA VNM

好像行不通,我该如何输入命令,保留中国和东盟6国?

多谢老师。


二维码

扫码加我 拉你入群

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

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

关键词:Expression express Xpress Press long 中国 国家 东盟 进口 如何

沙发
arlionn 在职认证  发表于 2011-8-21 11:21:44 |只看作者 |坛友微信交流群
假设存储国家名称的变量是 country, 则可以执行如下命令:
keep if inlist(country, "China", "name2", "name3", "name4", "name5", "name6")

使用道具

藤椅
euroship 发表于 2011-8-21 16:33:56 |只看作者 |坛友微信交流群
果然好用,Thx!

附加提一个问题:如果不是7个国家,而是30国或40国,好像这个命令就不能用了,出现“expression too long”的红色提示了。这时要怎么办?

多谢连老师。

使用道具

板凳
arlionn 在职认证  发表于 2011-8-23 09:02:48 |只看作者 |坛友微信交流群
help f_inlist
The number of arguments is between 2 and 255 for reals and between 2 and 10 for strings.

所以你可以国家名称转成数字,然后根据数字来选择要保留的国家。
encode country, gen(id)
labelbook
keep if inlist(id, 1, 3, 7 ……)
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
TyroLiu + 1 + 1 + 1 + 1 精彩帖子
潇潇木枼 + 1 + 1 + 1 精彩帖子

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

使用道具

报纸
euroship 发表于 2011-8-23 18:08:29 |只看作者 |坛友微信交流群
原来是字节数太长了,不是容量问题。

唉,我还是没有形成看help的习惯,感觉总是看不明白似的。

再次感谢连老师!

使用道具

地板
gdfoshanluofeng 发表于 2011-8-23 20:56:21 |只看作者 |坛友微信交流群
很好,学到一招
努力学习

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-4 13:53