楼主: beci426
3316 25

求一个简单的小程序 [推广有奖]

  • 8关注
  • 6粉丝

讲师

0%

还不是VIP/贵宾

-

威望
0
论坛币
90986 个
通用积分
528.5417
学术水平
47 点
热心指数
50 点
信用等级
43 点
经验
12274 点
帖子
348
精华
0
在线时间
396 小时
注册时间
2008-6-20
最后登录
2024-3-20

100论坛币
现在有个非常简单的问题。
我又unbalanced panel data 我想处理成为带有缺失值的panel data
1.png

想达到的效果
想把上图变成下图的效果。
现在的情况是 ID很多很多。。但是date 就10天。
要是原来数据没有,就把所有ID的所有Date补齐之后,其他设为缺失值。

数据量有上百万条,尽量讲求效率

希望大神不吝赐教。
这个问题之后还有若干小问题。论坛币可以再追加

最佳答案

关键词:小程序 panel data unbalanced unbalance Balanced 程序

本帖被以下文库推荐

沙发
boe 发表于 2013-6-15 15:00:50 |只看作者 |坛友微信交流群
  1. data t1;
  2.        input id $ date quan price;
  3. datalines;
  4. 1        1        10        2
  5. 1        2        9        2
  6. 2        1        8        2
  7. 2        2        7        2
  8. 2        3        6        2
  9. 3        2        5        2
  10. mm       5        4        2
  11. ;
  12. run;
  13. proc sort data=t1(keep=id) out=t2 nodupkey;by id ;run;
  14. data t2;
  15.     set t2;
  16.         do date=1 to 10;
  17.             call missing(quan,price);
  18.                 output;
  19.         end;
  20. run;
  21.           
复制代码
Gorgeous girl , I love !

使用道具

藤椅
beci426 发表于 2013-6-15 15:01:36 |只看作者 |坛友微信交流群
excel表格在这里。希望大家帮助!万分感谢!

123.xlsx

8.7 KB

使用道具

板凳
beci426 发表于 2013-6-15 15:07:47 |只看作者 |坛友微信交流群
希望大家不吝赐教!!

使用道具

报纸
dingfu295 发表于 2013-6-15 15:43:56 |只看作者 |坛友微信交流群
123.xlsx (10.76 KB)

excel就行了,不需要编程

使用道具

地板
boe 发表于 2013-6-15 15:44:45 |只看作者 |坛友微信交流群
  1. data t1;
  2.     input id date quan price;
  3. datalines;
  4. 1        1        10        2
  5. 1        2        9        2
  6. 2        1        8        2
  7. 2        2        7        2
  8. 2        3        6        2
  9. 3        2        5        2
  10. ;
  11. run;
  12. data t2;
  13.     do id=1 to 3;
  14.             do date=1 to 3;
  15.                     output;
  16.                 end;
  17.         end;
  18. run;
  19. proc sort data=t1;by id date;run;
  20. proc sort data=t2;by id date;run;
  21. data need;
  22.     merge t1 t2;
  23.         by id date;
  24. run;
复制代码
Gorgeous girl , I love !

使用道具

7
boe 发表于 2013-6-15 16:05:22 |只看作者 |坛友微信交流群
这个可能最快。。。
  1. data t1;
  2.        input id date quan price;
  3. datalines;
  4. 1        1        10        2
  5. 1        2        9        2
  6. 2        1        8        2
  7. 2        2        7        2
  8. 2        3        6        2
  9. 3        2        5        2
  10. ;
  11. run;
  12. data t2;  
  13.        call missing(quan,price);
  14.        do id=1 to 3;
  15.               do date=1 to 3;
  16.                      output;
  17.               end;
  18.        end;
  19. run;
  20. data need;
  21.        if _n_=0 then set work.t1;
  22.        if _n_=1 then do;
  23.               declare hash myhash(dataset:'work.t1');
  24.               myhash.definekey('id','date');
  25.               myhash.definedata(all:'yes');
  26.               myhash.definedone();        
  27.        end;
  28.        set t2;
  29.        if myhash.find()=0 or myhash.find()^=0;
  30. run;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
beci426 + 1 + 1 + 1 热心帮助其他会员

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

Gorgeous girl , I love !

使用道具

8
beci426 发表于 2013-6-15 17:04:58 |只看作者 |坛友微信交流群
boe 发表于 2013-6-15 16:05
这个可能最快。。。
您好,非常感谢您的回答!
有两个小的问题
1 如果要是id中不仅是数字还有字母,而且id数量众多。应该如何解决?
2 本身样本量大,超百万行,全部读入hash可能内存不够。有没有其他办法或者思路呢?
非常感谢!论坛币我一定会给您的!

使用道具

9
boe 发表于 2013-6-15 19:15:41 |只看作者 |坛友微信交流群
beci426 发表于 2013-6-15 17:04
您好,非常感谢您的回答!
有两个小的问题
1 如果要是id中不仅是数字还有字母,而且id数量众多。应该如 ...
i提供点原始数据看看?
百万行放在内存中应该没问题吧,变量很多吗?
Gorgeous girl , I love !

使用道具

10
temple89 发表于 2013-6-15 19:21:11 |只看作者 |坛友微信交流群
楼主,做两次转置即可。程序如下:

data t1;
input id date quan price;
datalines;
1 1 10 2
1 2 9 2
2 1 8 2
2 2 7 2
2 3 6 2
3 2 5 2
;
run;

proc transpose data=t1 out=t2(drop=_name_) prefix=date;
by id;
id date;
var quan price;
run;

proc transpose data=t2 out=t3;
by id;
var date1 date2 date3;
run;

data final;
set t3;
length date 8.;
_name_=compress(_name_,'date');
drop _name_;
rename col1=quan col2=price;
run;

使用道具

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

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

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

GMT+8, 2024-5-5 16:39