楼主: lachance
1874 4

[原创博文] 时间堆积格式如何转化为panel data 格式 [推广有奖]

  • 1关注
  • 3粉丝

讲师

44%

还不是VIP/贵宾

-

威望
0
论坛币
693 个
通用积分
0.0157
学术水平
4 点
热心指数
5 点
信用等级
1 点
经验
10072 点
帖子
403
精华
0
在线时间
399 小时
注册时间
2008-1-22
最后登录
2020-4-15

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
表1 数据格式如下:
a 2002  1  
a 2003  2  
a 2004  3  
b 2002  9   
b 2003  8
b 2004  7
c 2002  3
c 2003  5
c 2004  9

请问如何转化为下面的表2 结构?
date    a b  c
2002   1 9 3
2003   2 8 5
2004   3 7 9

还想问问, 如何把表2结构转化为表1结构?
二维码

扫码加我 拉你入群

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

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

关键词:panel data Panel pane Data date 如何

沙发
sxxapple 发表于 2012-8-31 00:58:42 |只看作者 |坛友微信交流群
ding

使用道具

藤椅
maidenhan 发表于 2012-8-31 08:40:18 |只看作者 |坛友微信交流群
U can use "Transpose" procedure to handle it.

data t1;
        input tit$ yr $ val;
cards;
a 2002  1
a 2003  2
a 2004  3
b 2002  9
b 2003  8
b 2004  7
c 2002  3
c 2003  5
c 2004  9
;run;
proc sort data = t1;
        by yr tit;
run;
proc transpose data = t1 out = t2(drop = _NAME_);
        id tit;
        by yr;
        var val;
run;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
lachance + 1 + 1 + 1 多谢熊大狭

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

使用道具

板凳
lachance 发表于 2012-8-31 09:41:10 |只看作者 |坛友微信交流群
如果不想transpose 后, tit 成为header , 那该怎么做呢?
[

使用道具

报纸
maidenhan 发表于 2012-8-31 17:05:14 |只看作者 |坛友微信交流群
lachance 发表于 2012-8-31 09:41
如果不想transpose 后, tit 成为header , 那该怎么做呢?
Sometimes, the "tit" is not in English character, so we have to create a new variable to replace it.
Here is my way.

data t1;
        input tit$ yr $ val;
cards;
a 2002  1
a 2003  2
a 2004  3
b 2002  9
b 2003  8
b 2004  7
c 2002  3
c 2003  5
c 2004  9
;run;
proc sort data = t1;
        by tit;
run;
data t2 temp(keep = tit fid);
        set t1;
        by tit;
        if first.tit then fid + 1;
run;
proc sort data = temp nodupkey; by _all_; run;
proc sort data = t2;
        by yr fid;
run;
proc transpose data = t2 out = t3(drop = _NAME_);
        id fid;
        by yr;
        var val;
run;
proc sql noprint;
        select compress("_"||put(fid,8.)||'="'||tit||'"') into:vars_label separated by ' '
                from temp;
quit;
data t4;
        set t3;
        label &vars_label.;
run;

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

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

GMT+8, 2024-5-1 11:22