楼主: freezeyouth
1644 6

[原创博文] 请问一个数组应用的例子 [推广有奖]

  • 0关注
  • 0粉丝

已卖:6份资源

高中生

80%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
299 点
帖子
18
精华
0
在线时间
26 小时
注册时间
2008-2-14
最后登录
2014-5-5

楼主
freezeyouth 发表于 2011-10-6 13:53:15 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
帮忙用数组写一个类似EXCEL数据透视的程序,谢谢!原dataset A
Worker Year Code
001 1944 B
002 1948 E
003 1947 C
005 1945 A
006 1948 D

目标DATASET B
Year    A               B C D E
1944  N(个数)...
1945  ..
1946  ..
...
二维码

扫码加我 拉你入群

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

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

关键词:dataset excel数据 worker DataS EXCEL EXCEL 程序

沙发
yugao1986 发表于 2011-10-6 15:37:15
data a;
input (Worker  Year  Code) ($)  ;
cards;
001 1944 B
002 1948 E
003 1947 C
005 1945 A
006 1948 D
007 1949 A
008 1953 B
009 1950 C
010 1950 B
;
run;

/*依年份对不同的code计数*/
proc sql;
create table b as
select worker,year,code,
       count(code) as cnt
from a
group by year;
quit;
/*转置,数据结构变换*/
proc transpose data=b out=c;
   by year code notsorted;
   var cnt;
run;
proc transpose data=c out=d;
   by year _name_ ;
   id code;
run;
三人行必有我师

藤椅
freezeyouth 发表于 2011-10-6 17:07:42
谢谢给出的解答,可以实现。
对数组缺少理解,想通过数组实现,但通过下面程序显然是出错了,求正解!谢谢!
data look_up;
array level{1944:1950,5} _temporary_;
retain level 0;
set new;
job=input(translate(jobcode,'123','ABC'),1.);
year=year(date);
if _n_=1 then
do year=1944 to 1950;
do job=1 to 3;
level{year,job}=level{year,job}+1;
year=year;
if job=1 then a=level{year,job};
else if job =2 then b=level{year,job};
else c=level{year,job};
end;
end;

板凳
jingju11 发表于 2011-10-6 22:31:54
freezeyouth 发表于 2011-10-6 17:07
谢谢给出的解答,可以实现。
对数组缺少理解,想通过数组实现,但通过下面程序显然是出错了,求正解!谢谢 ...
其实你的差不多都是对的。我想还可以这样:
  1. data look_up;
  2.              ...;
  3. run;
复制代码
京剧

报纸
soporaeternus 发表于 2011-10-8 09:00:19
那个透视表的话还可以用tabulate吧......
Let them be hard, but never unjust

地板
zhentao 发表于 2011-10-9 09:19:59
京剧大师的程序里有个typo:level[1944:1953, 5]。要不出界了。

7
jingju11 发表于 2011-10-12 01:16:47
zhentao 发表于 2011-10-9 09:19
京剧大师的程序里有个typo:level[1944:1953, 5]。要不出界了。
不敢当.我没有代入具体的数据集里.只是再他的程序上改动.我个人也觉得此处使用数组并不恰当.认同yuyao的方法是合理的.
京剧

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 14:05