楼主: xiaohunhunlaile
2240 7

[问答] 求助:观测填补 [推广有奖]

  • 0关注
  • 0粉丝

大专生

13%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
139 点
帖子
29
精华
0
在线时间
40 小时
注册时间
2009-10-3
最后登录
2017-3-18

楼主
xiaohunhunlaile 发表于 2010-12-28 21:45:11 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
手工找到的数据,每个年份VC出现的不同,有的年份出现,有的年份没有出现。如下面的数据,时间跨度1995至2005,我想做出一个扩充的表格,使得每年数据中的每个VC都出现一次,各VC后面的conn值,如果当年空缺,就等于前一年的值,如果是起始年份(1995)没有出现,就为0。
不知道我表述清楚没有,请各位大侠帮帮忙。~~  最近老来这边提问,麻烦各位大侠了,期末论文在即啊~~
VC year conn
3i集团 2003 5
3i集团 2004 11
698资本 2005 3
AFC 2003 1
AIG 1999 1
AIG 2000 3
AIG 2004 5
Allegis Capital 2004 3
Alpine 1995 3
Alpine 1999 8
Asean China Investment Fund 2005 1
AsiaTech 1999 3
AsiaTech 2000 6
Asian Groove 2004 2
Auric Pacific 2005 2
Aventures 2004 1
Aventures 2005 2
BNS 2003 1
Banc America Capital Partners 2005 3
Bay Partners 2005 5
二维码

扫码加我 拉你入群

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

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

关键词:Investment investmen partners ventures Venture 求助 观测

回帖推荐

elek.me 发表于4楼  查看完整内容

基本上用的都是data步,里面一些过程用SQL也是可以的。楼主先看看是不是你需要的:

本帖被以下文库推荐

沙发
起个烂名想一夜 发表于 2010-12-28 21:53:13
这个真不知道,不好意思

藤椅
xiaohunhunlaile 发表于 2010-12-28 22:04:46
呵呵 ~~  还是要谢谢你进来 2# 起个烂名想一夜

板凳
elek.me 发表于 2010-12-29 13:03:55
基本上用的都是data步,里面一些过程用SQL也是可以的。楼主先看看是不是你需要的:
  1. data have;
  2.         infile "d:\sas\vc.txt" dlm="09"x;
  3.         input  VC :$50. year conn;
  4. run;



  5. data _null_;
  6.         set have end=eof;
  7.         retain minyear maxyear 0;
  8.         if _n_=1 then do;
  9.                 minyear=year;
  10.                 maxyear=year;
  11.         end;
  12.         if year>maxyear then maxyear=year;
  13.         if year<minyear then minyear=year;
  14.         if eof then do;
  15.                 call symputx ("minyear",minyear);
  16.                 call symputx ("maxyear",maxyear);
  17.         end;
  18. run;

  19. proc sort data=have;
  20.         by vc year;
  21. run;

  22. data vc;
  23.         set have;
  24.         by vc;
  25.         if first.vc then do;
  26.                 do year=&minyear. to &maxyear.;
  27.                         output;
  28.                 end;
  29.         end;
  30.         drop conn;
  31. run;

  32. data want;
  33.         merge vc(in=aa) have(in=bb);
  34.         by vc year;
  35.         if aa;
  36.         if year=&minyear. and conn=. then conn=0;
  37.         retain flag;
  38.         if conn^=. then flag=conn;
  39.         conn=coalesce(conn,flag);
  40.         drop flag;
  41. run;
复制代码
我的博客: http://elek.me/sas
联系我: http://about.me/elek

报纸
elek.me 发表于 2010-12-29 13:04:55
have数据集需要你自己根据你的数据文件来修改。 我用的是这个txt文件,稍微整理了一下的。

vc.txt
下载链接: https://bbs.pinggu.org/a-825320.html

492 Bytes

我的博客: http://elek.me/sas
联系我: http://about.me/elek

地板
xiaohunhunlaile 发表于 2010-12-29 13:21:33
神人,膜拜一下~~谢谢哈 5# elek.me

7
well306 发表于 2010-12-31 14:25:51
如下面的数据,时间跨度1995至2005,我想做出一个扩充的表格,使得每年数据中的每个VC都出现一次,各VC后面的conn值,如果当年空缺,就等于前一年的值,如果是起始年份(1995)没有出现,就为0。
---------------------

不是太清楚你的意思。看起来应该不难,用很多程序都可以处理。个人意见,只要能达到效果,程序应该越简练越好呵呵。

1./我想做出一个扩充的表格,使得每年数据中的每个VC都出现一次/..........可以用SAS里的order 和group语句应该;
2./如果当年空缺,就等于前一年的值,如果是起始年份(1995)没有出现,就为0。/..........可以把三个变量转换为三维数组,以方便操作,然后可以用条件语句应该呵呵。
(仅供参考,呵呵~)
授人以鱼,不若授人以渔~

8
xiaohunhunlaile 发表于 2011-1-5 00:08:17
嗯 谢谢啦~~  是比较简单  俺试试~~ 7# well306

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 15:01