楼主: 猪貘狼马蜂
3872 8

[编程问题求助] 【求助】在stata内提取并合并数据的问题 [推广有奖]

  • 2关注
  • 0粉丝

大专生

35%

还不是VIP/贵宾

-

威望
0
论坛币
641 个
通用积分
4.0014
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2975 点
帖子
18
精华
0
在线时间
79 小时
注册时间
2015-6-26
最后登录
2021-2-18

楼主
猪貘狼马蜂 学生认证  发表于 2016-9-7 21:14:27 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如下图,我想把公元纪年作为时间变量,因此要将同一个体处于同一年的会计期间内数据(R)合并(也就是相加),不知如何操作。另外,我对现有数据直接设为面板则提示repeated time values within panel ,我会继续搜索相关内容解决,如果有好心人能都帮我看一下将非常感谢! stata.jpg

以下是我使用的数据:
test.dta (5.46 MB)
二维码

扫码加我 拉你入群

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

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

关键词:Stata tata 合并数据 Repeated repeat repeated values within 好心人 会计

沙发
夏目贵志 发表于 2016-9-8 07:48:22
试试
gen year=substr(string(var1,"%8.0f"),1,4)
bys stkid year: egen sumr=sum(r)
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
猪貘狼马蜂 + 1 + 1 + 1 感谢

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

藤椅
黃河泉 在职认证  发表于 2016-9-8 08:19:53
先撇开 Stata 的问题,为何这样做?(这样做有经济意义吗?)

板凳
猪貘狼马蜂 学生认证  发表于 2016-9-8 09:47:08
黃河泉 发表于 2016-9-8 08:19
先撇开 Stata 的问题,为何这样做?(这样做有经济意义吗?)
转换时间变量为年度而已啊,易于研究啊

报纸
黃河泉 在职认证  发表于 2016-9-8 10:59:10
猪貘狼马蜂 发表于 2016-9-8 09:47
转换时间变量为年度而已啊,易于研究啊
转成年度资料我可以理解,但从来没有看过有人这样做的!(一般取年末资料,有时全年平均,但要看你的变量是啥?)

地板
猪貘狼马蜂 学生认证  发表于 2016-9-8 12:34:26
黃河泉 发表于 2016-9-8 10:59
转成年度资料我可以理解,但从来没有看过有人这样做的!(一般取年末资料,有时全年平均,但要看你的变量 ...
我觉得只要是流量,并且时间变量在每年末都能卡住,那么新数据就是在一个年度的流量,这说得通吧?例如GDP什么的

7
猪貘狼马蜂 学生认证  发表于 2016-10-15 10:09:51
夏目贵志 发表于 2016-9-8 07:48
试试
gen year=substr(string(var1,"%8.0f"),1,4)
bys stkid year: egen sumr=sum(r)
我继续请教下
stata在做绝大多数计算的时候,缺省值的结果还是缺省值。但是我发现这个egen求和命令在计算时似乎把缺省值当作0来求和,这让我很困扰。我的本意是在某一年度中只要有缺省出现就删去,但现在只能删去r为缺省的数据条目,对于求出来的和却无能为力。光说起来可能比较抽象,写出来如下:
code accper var1 year
1 19950630 .  1995
1 19951231 3 1995
根据上述命令操作,得到:
code accper var1 year sumvar1
1 19950630 .  1995 3
1 19951231 3 1995 3
因为编号为1的个体的1995年的原数据存在了缺省,故想删去其1995年的sumvar1数据条目,请问如何解决呢?{:2_27:}

8
夏目贵志 发表于 2016-10-16 00:07:54
猪貘狼马蜂 发表于 2016-10-15 10:09
我继续请教下
stata在做绝大多数计算的时候,缺省值的结果还是缺省值。但是我发现这个egen求和命令在计算 ...
因为编号为1的个体的1995年的原数据存在了缺省,故想删去其1995年的sumvar1数据条目,请问如何解决呢?
replace sumvar1=. if var1==.
你是想要这样吗?

9
猪貘狼马蜂 学生认证  发表于 2016-10-20 17:05:51
夏目贵志 发表于 2016-10-16 00:07
replace sumvar1=. if var1==.
你是想要这样吗?
像这样做的话,sumvar就可能存在两个矛盾的值的了,行不通诶,我自己有了解决办法:
在原文件上对于变量的缺省值生成一个变量,作为某年的缺省标记,生成一个文件;再对原文件做加和(和以前一样的操作),再与刚才生成的文件合并,删去含有缺省标记的数据条目。
thanks anyway~~~

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

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