楼主: 木牛流马0
1232 5

[统计软件与数据分析] 将一列数据依据年份转换成几列数据 [推广有奖]

  • 2关注
  • 0粉丝

讲师

20%

还不是VIP/贵宾

-

威望
0
论坛币
2680 个
通用积分
140.0773
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2616 点
帖子
128
精华
0
在线时间
716 小时
注册时间
2016-7-17
最后登录
2025-11-17

楼主
木牛流马0 学生认证  发表于 2021-1-10 11:36:10 来自手机 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请教各位老师,如何将一列时间序列数据,转换成几列同一年份的数据,原始数据为下面的数据1,想要的结果为数据2。
数据1:

[CODE]
* Example generated by -dataex-. To install: ssc install dataex
clear
input int year float zp
2003     0
2003     0
2003     0
2003     0
2003     0
2004     0
2004     0
2004     0
2004 .1513
2004     0
2005     0
2005     0
2005     0
2005 .1934
2005     0
2006     0
2006     0
2006     0
2006 .0383
2006     0
end
[/CODE]

数据2:

[CODE]
* Example generated by -dataex-. To install: ssc install dataex
clear
input int year byte zp int year1 float zp1 int year2 float zp2 int year3 float zp3
2003 0 2004     0 2005     0 2006     0
2003 0 2004     0 2005     0 2006     0
2003 0 2004     0 2005     0 2006     0
2003 0 2004 .1513 2005 .1934 2006 .0383
2003 0 2004     0 2005     0 2006     0
end
[/CODE]
二维码

扫码加我 拉你入群

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

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

关键词:generated generate install example 时间序列数据

回帖推荐

艾云zr 发表于5楼  查看完整内容

可以先做一个辅助列,然后采用reshape命令 具体命令为: bysort year:gen n=_n order n year zp reshape wide zp,i(n) j(year) 然后依需要增加新变量
努力做一个不断向上的科研人

沙发
麟兮麟兮 发表于 2021-1-11 08:50:43
先将每年的数据提取出来,再横向拼接。

藤椅
木牛流马0 学生认证  发表于 2021-1-11 09:19:03
麟兮麟兮 发表于 2021-1-11 08:50
先将每年的数据提取出来,再横向拼接。
我本来的想法也是这样,但是一来没看明白merge命令应该这么操作,二来在想各位大佬会不会有更加简单的方法,所以想发个帖子问问。

板凳
艾云zr 发表于 2021-1-11 09:28:42
stata中可以先生成一个辅助列,然后用reshape命令,将长数据转为宽数据
具体有解释,可以看图片
reshape.png
具体命令如下 :
bysort year:gen n=_n
order n year zp
reshape wide zp,i(n) j(year)


然后可以按照需要添加新变量

报纸
艾云zr 发表于 2021-1-11 10:15:14
可以先做一个辅助列,然后采用reshape命令
具体命令为:
bysort year:gen n=_n
order n year zp
reshape wide zp,i(n) j(year)
然后依需要增加新变量
已有 1 人评分论坛币 收起 理由
木牛流马0 + 5 精彩帖子

总评分: 论坛币 + 5   查看全部评分

地板
木牛流马0 学生认证  发表于 2021-1-11 10:34:26
艾云zr 发表于 2021-1-11 10:15
可以先做一个辅助列,然后采用reshape命令
具体命令为:
bysort year:gen n=_n
感谢大佬,十分契合我的想要的结果!

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

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2025-12-29 12:21