全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5852 8
2009-12-29
我有一组如下格式的数据,想要统计频数,用来proc tabulate,可是还是没法达到我想要的效果,想请高人指点一下:

stas year month day tem
123 1951 1 1 2
123 1951 1 2 2
123 1951 2 1 2
123 1951 2 2 2
123 1951 3 1 2
123 1951 3 2 2
123 1952 1 1 2
123 1952 1 2 2
123 1952 2 1 2
123 1952 2 2 2
123 1952 3 1 2
123 1952 3 2 2
123 1953 1 1 2
123 1953 1 2 2
123 1953 2 1 2
123 1953 2 2 2
123 1953 3 1 2
123 1953 3 2 2
246 1951 1 1 2
246 1951 1 2 2
246 1951 2 1 2
246 1951 2 2 2
246 1951 3 1 2
246 1951 3 2 2
246 1952 1 1 2
246 1952 1 2 2
246 1952 2 1 2
246 1952 2 2 2
246 1952 3 1 2
246 1952 3 2 2
246 1953 1 1 2
246 1953 1 2 2
246 1953 2 1 2
246 1953 2 2 2
246 1953 3 1 2
246 1953 3 2 2
789 1951 1 1 2
789 1951 1 2 2
789 1951 2 1 2
789 1951 2 2 2
789 1951 3 1 2
789 1951 3 2 2
789 1952 1 1 2
789 1952 1 2 2
789 1952 2 1 2
789 1952 2 2 2
789 1952 3 1 2
789 1952 3 2 2
789 1953 1 1 2
789 1953 1 2 2
789 1953 2 1 2
789 1953 2 2 2
789 1953 3 1 2
789 1953 3 2 2

我自己写的语句是这样的:

proc tabulate data=test.test1 out=test.test2;
class stas tem year;
table stas*tem,year all;
run;

output 出来的结果:

数据集是这样的:


我希望数据集最后出来的结果和output的格式是类似的,也就是把原来变量 year 的值作为新的数据集里的变量名,而且type of , page for, table for 这几个我不想要,只想要 例如 当stas=123 时,tem=1 在 year=1951 时出现的频数。

希望哪位大侠可以帮帮忙,叩谢哦!
二维码

扫码加我 拉你入群

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

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

全部回复
2009-12-29 14:09:36
data test2;
set sasuser.test2;
keep stas tem year n;
run;
你试一下看是你想要的吗?
二维码

扫码加我 拉你入群

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

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

2009-12-29 14:10:04
复制到一个新的数据集中,只保存你想要的那几个!
二维码

扫码加我 拉你入群

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

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

2009-12-29 14:22:09
谢谢 wyxlls725 ,我试过了,可以删掉多余的变量,但是还是不能以year的值作为新的变量名。我想要的效果是这样的:

stas    tem    1951    1952    1953
123    1          2            1          0
123    2          4            5          6
246    1          1            1           1
246    2          5            5          5

盼哪位高人指点一下啦!
二维码

扫码加我 拉你入群

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

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

2009-12-29 15:18:21
4# redaring

If you do as   year=' ' * n=' ' in you table statement, you will get exactly what you want in output.

HTH

proc tabulate data=test1 ;
class stas tem year;
table stas*tem,year=' ' * n=' ' ;
run;
二维码

扫码加我 拉你入群

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

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

2009-12-29 15:38:40
谢谢 bobguy,试了一下,在output 中果然实现了我想要的结果,非常感谢!
但是在新输出的数据集中仍然是和原来一样的,year仍然是一列,这个该怎么解决呢?
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群