楼主: cortex112
4344 6

[其他] 几个问题,关于日期和虚拟变量(更新了数值再问) [推广有奖]

  • 0关注
  • 1粉丝

大专生

90%

还不是VIP/贵宾

-

威望
0
论坛币
4 个
通用积分
0
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
431 点
帖子
37
精华
0
在线时间
78 小时
注册时间
2008-10-28
最后登录
2021-1-6

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
几个问题,关于日期和虚拟变量(更新了数据片断再问)

2,如果我的日期变量是从04年开始的所有交易日(假定已经是数值不是str了,可以被stata接受),由于节假日的关系,中间会有gap。如何设置虚拟变量prjr,使prjr=1 if 之前有gap, otherwise 0? 这里的gap 的意思是说,日期是间断的。如:
date            intcclose        intcvolume
11-Nov-09  19.84        61342282
10-Nov-09  19.5        59517776
9-Nov-09           19.46        51383090
6-Nov-09           18.93        44168539
5-Nov-09           18.89        66146505


(这里还没有颠倒日期顺序,实际上是顺日期下来的不过问题不大)。意思是说在11月九号的地方设置虚拟变量值prjr=1,而在11日,10日,6日和5日都是0。(当时它说有309多个gap,用的就是这个词我就问了,也没想到会与”缺失值“有歧义)



4,日期变量同上,已经生成了日对数收益率的序列intcret, 如何快速生成一个月对数收益率的序列intcmsret?还是说是要在别的地方比如excel 自己整理(我就是这么做了1个小时,感觉好像还是只能这么做)


附件是这个stata文件。 intc.rar (42.52 KB) 本附件包括:
  • intc.dta

Merci mille fois!!!==============================
已解答的问题 先说声谢谢!!
1,1-aug-02 格式的日期(前面没有修平,所以长度不一样,比如10-aug-02比1-aug-02多一个字节)怎么转换成可识别的日期变量用于时间序列? 日期相关的内容在手册哪里我找不到?(因为已经两次有时间设置的问题,所以想自己看看)
3,日期变量同上,如何设置虚拟变量monday使monday=1 if 日期是周一? stata可以直接从日期变量序列判断出星期几吗?还是要先到excel去弄?
二维码

扫码加我 拉你入群

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

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

关键词:虚拟变量 otherwise monday volume Stata otherwise 交易日 如何

回帖推荐

sungmoo 发表于7楼  查看完整内容

*就本数据库,且第一天的prj=1 g d=date(date,"DM19Y") if substr(date,-2,1)=="9" replace d=date(date,"DM20Y") if substr(date,-2,1)=="0" format d %td sort d g prj=(d-d[_n-1]!=1)

sungmoo 发表于6楼  查看完整内容

*设d是日期型变量(表达日期),显示d是星期几。 form d %tdDAYNAME

sungmoo 发表于5楼  查看完整内容

*月对数收益率可以(绕过日对数收益率)直接计算吧? g d=date(date,"DM19Y") if substr(date,-2,1)=="9" replace d=date(date,"DM20Y") if substr(date,-2,1)=="0" g month=year(d)*100+month(d) bys month (d): g intn=intcclose[_N] g intcmsret=ln(intn/intn[_n-1]) if month!=month[_n-1] keep if intcmsret

sungmoo 发表于4楼  查看完整内容

*设变量d是日期型 g monday=(mod(d,7)==3) 或者 g monday=(dow(d)==1)

sungmoo 发表于2楼  查看完整内容

*设变量x是字符型,且格式是"1-aug-02"(未经修平) g d=date(x,"DM20Y") form d %td

本帖被以下文库推荐

沙发
sungmoo 发表于 2009-12-16 12:10:40 |只看作者 |坛友微信交流群
cortex112 发表于 2009-12-15 22:21 1,1-aug-02 格式的日期(前面没有修平,所以长度不一样,比如10-aug-02比1-aug-02多一个字节)怎么转换成可识别的日期变量用于时间序列?
*设变量x是字符型,且格式是"1-aug-02"(未经修平)

g d=date(x,"DM20Y")
form d %td

使用道具

藤椅
sungmoo 发表于 2009-12-16 12:13:22 |只看作者 |坛友微信交流群
cortex112 发表于 2009-12-15 22:21 2,如果我的日期变量是从04年开始的所有交易日(假定已经是数值不是str了,可以被stata接受),由于节假日的关系,中间会有gap。如何设置虚拟变量prjr,使prjr=1 if 之前有gap, otherwise 0?
最好贴出一个数据片段,并说明你想要的结果在数据库中是什么样的。

(比如,gap的意义是什么,缺失值还是别的?)

使用道具

板凳
sungmoo 发表于 2009-12-16 12:23:44 |只看作者 |坛友微信交流群
cortex112 发表于 2009-12-15 22:21 3,日期变量同上,如何设置虚拟变量monday使monday=1 if 日期是周一? stata可以直接从日期变量序列判断出星期几吗?
*设变量d是日期型

g monday=(mod(d,7)==3)

或者

g monday=(dow(d)==1)

使用道具

报纸
sungmoo 发表于 2009-12-16 12:26:32 |只看作者 |坛友微信交流群
cortex112 发表于 2009-12-15 22:21 4,日期变量同上,已经生成了日对数收益率的序列intcret, 如何快速生成一个月对数收益率的序列intcmsret?还是说是要在别的地方比如excel 自己整理(我就是这么做了1个小时,感觉好像还是只能这么做)
*月对数收益率可以(绕过日对数收益率)直接计算吧?

g d=date(date,"DM19Y") if substr(date,-2,1)=="9"
replace d=date(date,"DM20Y") if substr(date,-2,1)=="0"
g month=year(d)*100+month(d)
bys month (d): g intn=intcclose[_N]
g intcmsret=ln(intn/intn[_n-1]) if month!=month[_n-1]
keep if intcmsret<.

使用道具

地板
sungmoo 发表于 2009-12-16 12:28:18 |只看作者 |坛友微信交流群
cortex112 发表于 2009-12-15 22:21 stata可以直接从日期变量序列判断出星期几吗?
*设d是日期型变量(表达日期),显示d是星期几。

form d %tdDAYNAME

使用道具

7
sungmoo 发表于 2009-12-17 13:10:55 |只看作者 |坛友微信交流群
cortex112 发表于 2009-12-15 22:21 2,如果我的日期变量是从04年开始的所有交易日(假定已经是数值不是str了,可以被stata接受),由于节假日的关系,中间会有gap。如何设置虚拟变量prjr,使prjr=1 if 之前有gap, otherwise 0? 这里的gap 的意思是说,日期是间断的。如:
date            intcclose  intcvolume
11-Nov-09  19.84        61342282
10-Nov-09  19.5          59517776
9-Nov-09    19.46        51383090
6-Nov-09    18.93        44168539
5-Nov-09    18.89        66146505

(这里还没有颠倒日期顺序,实际上是顺日期下来的不过问题不大)。意思是说在11月九号的地方设置虚拟变量值prjr=1,而在11日,10日,6日和5日都是0。(当时它说有309多个gap,用的就是这个词我就问了,也没想到会与”缺失值“有歧义)
*就本数据库,且第一天的prj=1
g d=date(date,"DM19Y") if substr(date,-2,1)=="9"
replace d=date(date,"DM20Y") if substr(date,-2,1)=="0"
format d %td
sort d
g prj=(d-d[_n-1]!=1)

使用道具

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

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

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

GMT+8, 2024-5-6 07:09