楼主: HHelennn
52403 12

[面板数据求助] 请问如何在stata中只保留特定的数据 [推广有奖]

  • 0关注
  • 0粉丝

小学生

64%

还不是VIP/贵宾

-

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

楼主
HHelennn 发表于 2018-3-4 08:22:25 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
捕获.PNG
如图,只想保留下每年12.31的数据,
【新手入门】看了初级教学视频,在stata尝试用  by t,sort,keep if t strmatch(t,"12-31") 不知道哪里出错了
直接用  keep if t strmatch(t,"12-31")   整个表都被删除了
跪求大神指导,感恩。

二维码

扫码加我 拉你入群

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

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

关键词:Stata tata Match 哪里出错了 ATCH

沙发
黃河泉 在职认证  发表于 2018-3-4 08:26:58
建议请用 dataex (先 ssc install dataex 并见说明) 将原始 Stata 资料中具有”代表性”的一部分资料列出,以供有意回答者实验之用,并能提供具体操作指令。并请参考 http://www.jianshu.com/p/9870080fe769,  https://bbs.pinggu.org/thread-5048204-1-1.html, 与 https://bbs.pinggu.org/thread-5917273-1-1.html
已有 1 人评分经验 论坛币 收起 理由
葫芦娃大王 + 1 + 1 热心帮助其他会员

总评分: 经验 + 1  论坛币 + 1   查看全部评分

藤椅
HHelennn 发表于 2018-3-4 08:57:03
* Example generated by -dataex-. To install: ssc install dataex
clear
input str13(id t) str32 ROA
"000001" "1998-06-30" ".010836"
"000001" "1998-12-31" ".019397"
"000001" "1999-06-30" ".006223"
"000001" "1999-12-31" ".012104"
"000001" "2000-06-30" ".003578"
"000001" "2000-12-31" ".007535"
"000001" "2001-06-30" ".00262"
"000001" "2001-12-31" ".003349"
"000001" "2002-03-31" ".001662"
"000001" "2002-06-30" ".002332"
"000001" "2002-09-30" ".002622"
"000001" "2002-12-31" ".002601"
"000001" "2003-03-31" ".000944"
"000001" "2003-06-30" ".001541"
"000001" "2003-09-30" ".001629"
"000001" "2003-12-31" ".001641"
"000001" "2004-03-31" ".001009"
"000001" "2004-06-30" ".001406"
"000001" "2004-09-30" ".002047"
"000001" "2004-12-31" ".001418"
end

板凳
HHelennn 发表于 2018-3-4 09:01:25
by t,sort,keep if t strmatch(t,"12-31")

报纸
军少 学生认证  发表于 2018-3-4 09:13:04
其实,我觉得也可以提取字符串 月份12,然后保留月份是12也行吧

地板
黃河泉 在职认证  发表于 2018-3-4 09:17:35
HHelennn 发表于 2018-3-4 09:01
by t,sort,keep if t strmatch(t,"12-31")
試試
  1. keep if regexm(t,"12-31")
复制代码

7
HHelennn 发表于 2018-3-4 09:34:46
黃河泉 发表于 2018-3-4 09:17
試試
谢谢您

8
HHelennn 发表于 2018-3-4 09:35:17
军少 发表于 2018-3-4 09:13
其实,我觉得也可以提取字符串 月份12,然后保留月份是12也行吧
嗯嗯好的我试试

9
HHelennn 发表于 2018-3-4 10:07:56
黃河泉 发表于 2018-3-4 09:17
試試
您好再次打扰了
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str13(id t) str18 L
  4. "000001" "1999-12-31" "1.311534"
  5. "000001" "2000-06-30" "1.464606"
  6. "000002" "1998-06-30" ".953124"
  7. "000002" "1998-12-31" "1.161011"
  8. "000002" "1999-06-30" "1.093564"
  9. "000002" "1999-12-31" "1.142584"
  10. "000002" "2000-06-30" "1.137619"
  11. "000002" "2000-12-31" "1.047522"
  12. "000002" "2001-06-30" "1.150877"
  13. "000002" "2001-12-31" "1.343499"
  14. "000002" "2002-03-31" ".984301"
  15. "000002" "2002-06-30" "1.109197"
  16. "000002" "2002-09-30" ".983108"
  17. "000002" "2002-12-31" "1.109414"
  18. "000002" "2003-03-31" "1.259386"
  19. "000002" "2003-06-30" "1.096718"
  20. "000002" "2003-09-30" "1.103588"
  21. "000002" "2003-09-30" ".941037"
  22. "000002" "2003-12-31" "1.149115"
  23. "000002" "2003-12-31" ".963039"
  24. end
复制代码
用同样的方法处理这些数据却显示

. keep if regexm(t,"12-31")//保留期末数据
unknown function ()
r(133);

end of do-file

10
HHelennn 发表于 2018-3-4 10:16:42
谢谢各位大神 我用
keep if strmatch(t,"*12-31*")
做出来了

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

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