楼主: 18004817351
4716 15

[时间序列问题] 如何保留一个样本同一年份下最后一次数据 [推广有奖]

  • 1关注
  • 13粉丝

高中生

85%

还不是VIP/贵宾

-

威望
0
论坛币
3801 个
通用积分
1.3705
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
450 点
帖子
29
精华
0
在线时间
32 小时
注册时间
2021-3-16
最后登录
2024-4-21

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我的数据如下
code  riqi  volue
000001  2002-03-12  0.34
000001  2002-04-15  0.57
000001  2003-06-17  1.26
000001  2003-07-01  2.36
000001  2003-12-29  0.35

我想要的数据是
2002-04-15和2003-12-29这两个,其余的不是最后一次都要剔除,这个怎么弄啊?跪求各位大神!


二维码

扫码加我 拉你入群

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

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

关键词:一个样 code 怎么弄 Vol ODE

沙发
黃河泉 在职认证  发表于 2021-11-30 07:57:56 |只看作者 |坛友微信交流群
1. 这应该是很简单的问题,请提供一点资料以便尝试。2. 你若要问程序,建议请用 (ssc install) dataex 附上相关`代表性’资料 (请尽量不要用截图或其他格式),以供回答者实验之用。请参考说明 https://bbs.pinggu.org/thread-5048204-1-1.htmlhttps://zhuanlan.zhihu.com/p/29911577

使用道具

藤椅
18004817351 发表于 2021-11-30 12:13:32 |只看作者 |坛友微信交流群
黃河泉 发表于 2021-11-30 07:57
1. 这应该是很简单的问题,请提供一点资料以便尝试。2. 你若要问程序,建议请用 (ssc install) dataex 附上 ...
[CODE]
* Example generated by -dataex-. To install: ssc install dataex
clear
input byte Stkcd str10 riqi byte(Position Changtyp Edca Dimreas Dimage) double Years byte Entele
1 "1994-12-13" 1 1 .  5  .     3 .
1 "1994-12-13" 1 2 .  .  .     . 2
1 "1995-08-21" 1 1 .  3 57     1 .
1 "1995-08-21" 1 2 3  .  .     . 2
1 "1995-08-21" 2 1 .  3 47     1 .
1 "1995-08-21" 2 2 5  .  .     . 1
1 "1997-07-22" 2 1 5 10 46     2 .
1 "1997-07-22" 2 2 4  .  .     . 2
1 "1999-02-28" 1 1 3  2 68   3.5 .
1 "1999-02-28" 1 2 4  .  .     . 1
1 "2002-04-30" 1 1 4  . 56  3.17 .
1 "2003-09-04" 1 2 4  .  .     . 1
1 "2003-10-16" 2 1 4  3 52     6 .
1 "2003-10-16" 2 2 4  .  .     . 1
1 "2004-12-14" 1 1 4  3 53     1 .
1 "2004-12-14" 1 2 5  .  .     . 2
1 "2004-12-14" 2 1 4  3 42     1 .
1 "2004-12-14" 2 2 4  .  .     . 2
1 "2005-05-16" 1 1 5  5 62    .5 .
1 "2005-05-16" 1 2 3  .  .     . 1
1 "2005-06-17" 1 2 3  .  .     . 1
1 "2005-06-17" 1 1 3 12 62    .1 .
1 "2006-02-11" 2 1 4  5 53   1.1 .
1 "2007-02-07" 2 2 2  .  .     . 1
1 "2010-06-29" 1 1 3  5 68     5 .
1 "2010-06-29" 1 2 2  .  .     . 1
1 "2010-06-29" 2 1 2  1 62  3.33 .
1 "2010-06-29" 2 2 .  .  .     . 1
1 "2010-10-13" 2 1 . 12 54   .25 .
1 "2010-10-13" 2 2 .  .  .     . 1
1 "2012-11-21" 2 1 .  8 56  2.08 .
1 "2012-11-21" 2 2 5  .  .     . 2
1 "2012-11-21" 1 1 .  8 64  2.42 .
1 "2012-11-21" 1 2 2  .  .     . 2
1 "2016-10-20" 2 1 5  5 59  3.92 .
1 "2016-10-20" 2 2 4  .  .     . 1
1 "2016-11-06" 1 1 2  3 63  3.96 .
1 "2016-11-07" 1 2 4  .  .     . 1
1 "2016-12-10" 1 1 4 12 45   .09 .
1 "2016-12-10" 1 2 5  .  .     . 2
1 "2016-12-10" 2 1 4 12 54   .14 .
1 "2016-12-10" 2 2 4  .  .     . 1
2 "1999-02-08" 2 1 .  9 48     8 .
2 "1999-02-08" 2 2 3  .  .     . 1
2 "2001-02-15" 2 1 3  7 49     2 .
2 "2001-02-15" 2 2 4  .  .     . 1
2 "2002-06-12" 1 2 3  .  .     . 1
2 "2017-06-29" 1 1 3  3 66 15.06 .
2 "2017-06-30" 1 2 4  .  .     . 1
end

使用道具

板凳
nieqiang110 学生认证  发表于 2021-11-30 17:43:20 |只看作者 |坛友微信交流群
用r语言
data%>%group_by(code,riqi)%>%filter(last(volue))
试试看

使用道具

报纸
黃河泉 在职认证  发表于 2021-11-30 18:29:21 |只看作者 |坛友微信交流群
18004817351 发表于 2021-11-30 12:13
[CODE]
* Example generated by -dataex-. To install: ssc install dataex
clear
谢谢提供资料,有点尴尬了。请看 1,2 笔资料还有 3-6 笔资料,请问要保留哪一笔?

使用道具

地板
pengxhan 发表于 2021-11-30 19:20:08 |只看作者 |坛友微信交流群
clear
input str20(code  riqi)  volue
000001  2002-03-12  0.34
000001  2002-04-15  0.57
000001  2003-06-17  1.26
000001  2003-07-01  2.36
000001  2003-12-29  0.35
end
gen year=substr(riqi,1,4)
bys year:keep if _n==_N

使用道具

7
18004817351 发表于 2021-11-30 20:03:26 |只看作者 |坛友微信交流群
黃河泉 发表于 2021-11-30 18:29
谢谢提供资料,有点尴尬了。请看 1,2 笔资料还有 3-6 笔资料,请问要保留哪一笔?
刚刚用dataex给您复制了一下我的数据,可能不是很清楚,我重新说一下我的需求和我的数据吧。数据如下,我想保留的就是某一个公司某一年度最后一次发生的数据,比如000001公司,在2003年,发生了3次,一次是2003-09-04发生,后两次是2003-10-16发生,我想要最后一次,那就是10-16发生的这两个都保留,其余的删除;再比如000003公司,在2016年10月,11月,12月都有发生,但我只要2016年12月的那两笔,因为是最后发生的,就是同一个样本同一年只要一个数据,按照最后一次发生的来,其余的都删除,最后一次精确到“日”,如果最后一次有多个一样的,都保留。不知道老师我说清楚我的需求了吗?烦请您解答一下,我试了好多次都没成功,要哭了。

* Example generated by -dataex-. To install: ssc install dataex
clear
input str6 Stkcd str10 riqi byte(Position Changtyp Edca Dimreas Dimage) double Years byte Entele
"000001" "2002-04-30" 1 1 4  . 56  3.17 .
"000001" "2003-09-04" 1 2 4  .  .     . 1
"000001" "2003-10-16" 2 1 4  3 52     6 .
"000001" "2003-10-16" 2 2 4  .  .     . 1
"000001" "2004-12-14" 1 1 4  3 53     1 .
"000001" "2004-12-14" 1 2 5  .  .     . 2
"000001" "2004-12-14" 2 1 4  3 42     1 .
"000001" "2004-12-14" 2 2 4  .  .     . 2
"000001" "2005-05-16" 1 1 5  5 62    .5 .
"000001" "2005-05-16" 1 2 3  .  .     . 1
"000001" "2005-06-17" 1 2 3  .  .     . 1
"000001" "2005-06-17" 1 1 3 12 62    .1 .
"000002" "2006-02-11" 2 1 4  5 53   1.1 .
"000002" "2007-02-07" 2 2 2  .  .     . 1
"000002" "2010-06-29" 1 1 3  5 68     5 .
"000002" "2010-06-29" 1 2 2  .  .     . 1
"000002" "2010-06-29" 2 1 2  1 62  3.33 .
"000002" "2010-06-29" 2 2 .  .  .     . 1
"000002" "2010-10-13" 2 1 . 12 54   .25 .
"000002" "2010-10-13" 2 2 .  .  .     . 1
"000002" "2012-11-21" 2 1 .  8 56  2.08 .
"000002" "2012-11-21" 2 2 5  .  .     . 2
"000002" "2012-11-21" 1 1 .  8 64  2.42 .
"000002" "2012-11-21" 1 2 2  .  .     . 2
"000003" "2016-10-20" 2 1 5  5 59  3.92 .
"000003" "2016-10-20" 2 2 4  .  .     . 1
"000003" "2016-11-06" 1 1 2  3 63  3.96 .
"000003" "2016-11-07" 1 2 4  .  .     . 1
"000003" "2016-12-10" 1 1 4 12 45   .09 .
"000003" "2016-12-10" 1 2 5  .  .     . 2
"000003" "2016-12-10" 2 1 4 12 54   .14 .
"000003" "2016-12-10" 2 2 4  .  .     . 1
"000003" "1999-02-08" 2 1 .  9 48     8 .
"000003" "1999-02-08" 2 2 3  .  .     . 1
"000004" "2001-02-15" 2 1 3  7 49     2 .
"000004" "2001-02-15" 2 2 4  .  .     . 1
"000004" "2002-06-12" 1 2 3  .  .     . 1
"000004" "2017-06-29" 1 1 3  3 66 15.06 .
"000004" "2017-06-30" 1 2 4  .  .     . 1
end
[/CODE]

使用道具

8
18004817351 发表于 2021-11-30 20:03:58 |只看作者 |坛友微信交流群
nieqiang110 发表于 2021-11-30 17:43
用r语言
data%>%group_by(code,riqi)%>%filter(last(volue))
试试看
呜呜呜呜,孩子不会R语言,stata都搞不定这个,要哭了。

使用道具

9
黃河泉 在职认证  发表于 2021-11-30 21:49:15 |只看作者 |坛友微信交流群
18004817351 发表于 2021-11-30 20:03
刚刚用dataex给您复制了一下我的数据,可能不是很清楚,我重新说一下我的需求和我的数据吧。数据如下,我 ...
现在我看懂了,帮你问问,希望明早有答案!

使用道具

10
我是小肚肚 发表于 2021-11-30 23:27:49 |只看作者 |坛友微信交流群
看6楼的操作方法,最后行换成 bys stkcd year:...
把剩下的 stkcd riqi 另存为新的dta,这个dta里是每个股票每年最后一天的日期。
再用主文件 merge m:1 新文件,keep if _m==3 就可以了

使用道具

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

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

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

GMT+8, 2024-4-28 22:08