楼主: 小莹要毕业
2950 9

[数据管理求助] 【筛选数据求助】怎么用stata筛选海关编码的数据 [推广有奖]

  • 0关注
  • 6粉丝

已卖:2448份资源

本科生

21%

还不是VIP/贵宾

-

威望
0
论坛币
17548 个
通用积分
32.6506
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1016 点
帖子
58
精华
0
在线时间
94 小时
注册时间
2020-3-22
最后登录
2021-3-5

楼主
小莹要毕业 发表于 2020-4-24 17:41:51 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
使用HS2007的baci数据库。现在想筛选特定产品的数据,比如k是840120、k是840710等的数据(一共由300个左右)。
我用keep if 语句,把300个的编码都写出来了。
我尝试执行了两行命令,从keep if k==840120开始到k==84399。但是只筛选出keep if所在的第一行数据。只筛选到k==841122,为什么下一行开始都没能筛选出来,我是漏了什么吗?
小白一个,求大神们帮助啊!!!!
6.jpg


二维码

扫码加我 拉你入群

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

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


微信图片_20200424173457.png (25 KB)

微信图片_20200424173457.png

4.png (196.66 KB)

4.png

沙发
uglyljr 发表于 2020-4-24 23:30:05
不是很明白你想表达的问题。那我就按照我的理解说说我的看法吧。
我先把数据从excel导入stata中。 然后排序。命令: gsort k
这样,相同k值的就都排列在一起了,而且从小到大排列。 这样你就可以顺利查看数据了。

至于你提到的“筛选”,excel的术语,上面的步骤可以实现excel筛选和排序功能。
如果还想把某几个k值的数据单独保存为另一个文件, 比如k值大于84012的保存起来,可以这样
keep if k>84012
save filename.dta

藤椅
小莹要毕业 发表于 2020-4-25 11:48:16
uglyljr 发表于 2020-4-24 23:30
不是很明白你想表达的问题。那我就按照我的理解说说我的看法吧。
我先把数据从excel导入stata中。 然后排序 ...
感谢你的帮助,我也是用了if语句,写了很复杂(把200多个编码都写上了),想问问有没有比较简便的命令写法
1.jpg

板凳
uglyljr 发表于 2020-4-27 00:47:58
小莹要毕业 发表于 2020-4-25 11:48
感谢你的帮助,我也是用了if语句,写了很复杂(把200多个编码都写上了),想问问有没有比较简便的命令写法 ...
当然,首先要明白你的研究目的啦。
单从你贴出来的命令看,我会用这个命令
keep if k >840119

报纸
gigh 在职认证  发表于 2020-4-27 12:47:43
小莹要毕业 发表于 2020-4-25 11:48
感谢你的帮助,我也是用了if语句,写了很复杂(把200多个编码都写上了),想问问有没有比较简便的命令写法 ...
不知道編碼是否有特定的
像是說前幾碼等於特定數字, 那可以先建立一個變數假設叫k1,k1為前2碼,你要抓取前兩碼為84
這樣可以這樣做,指示步驟也很多
tostring k,replace //先將K轉為字串
gen len=length( k)  //確定字串長度,檢測太短的字串
gen k1=substr(k,1,2) //前兩字元
keep if k1=="84"
keep if len==6 //排除字元數少者

地板
小莹要毕业 发表于 2020-4-30 19:55:26
uglyljr 发表于 2020-4-27 00:47
当然,首先要明白你的研究目的啦。
单从你贴出来的命令看,我会用这个命令
keep if k >840119
我用infile导入了数据然后执行了keep命令,可是出现了这样的问题,请问是在哪里出问题了呢?
1.png

7
小莹要毕业 发表于 2020-4-30 19:56:28
gigh 发表于 2020-4-27 12:47
不知道編碼是否有特定的
像是說前幾碼等於特定數字, 那可以先建立一個變數假設叫k1,k1為前2碼,你要抓 ...
编码比较集中,的确可以尝试下你说的办法,我去试试。感谢帮助

8
uglyljr 发表于 2020-5-1 18:38:20
小莹要毕业 发表于 2020-4-30 19:55
我用infile导入了数据然后执行了keep命令,可是出现了这样的问题,请问是在哪里出问题了呢?
变量数值为红色,说明是文本型,即string型数据。 你可以用命令 format k  查看, 如果有s字样,表明是字符型或文本型数据。 我们先将其转换成数值型,用命令 destring k, replace
然后再用keep if k>840119 就可以了哦

9
小莹要毕业 发表于 2020-5-1 19:00:13
uglyljr 发表于 2020-5-1 18:38
变量数值为红色,说明是文本型,即string型数据。 你可以用命令 format k  查看, 如果有s字样,表明是字 ...
感谢帮助!!!现在情况是这样的,我改用insheet命令导入数据就正确了(之前导入的代码有点错误),然后写了keep if ,尝试筛选两行。但是结果只能筛选第一行的数据,到第二行就没有了呢?是缺了什么吗?
6.jpg

10
小小孩的Sandra 学生认证  发表于 2023-2-24 16:52:57
同学,你好。目前我也在用BACI数据,想筛选中间品数据。以下是BEC第四版本21编码对应的BACIHS96版本的6位码,总共305个6位码产品,如果用STATA筛选,也就是i为中国156,J为我的样本国。是不是只能像你一样用Keep if k==(305个产品编码),全部罗列才可以呀。因为我的这305个产品编码毫无归类可循。

313a5fcf423a332a9db0f211efbaeca.png (73.54 KB)

313a5fcf423a332a9db0f211efbaeca.png

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-2-8 16:07