全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1534 4
2014-01-22
数据如下示,group代表该观测是第i组的,每组每个时点的数据纵向排列了;
目标很简单,希望第一列是日期2010/1-2010/12 之后每一列是每一分组的value;
我自己想的笨办法是分组output每条观测,每个组一个数据集;
然后横向proc merge数据集,问题是必须提前修改变量名,否则后者覆盖前者,所以十分麻烦;
求教有什么简单可行的办法;会一点BASE 和SQL;
如果过程高深复杂,还望略带解释,谢谢各位大虾!!
date                    group        value
2010年1月        1        5
2010年2月        1        4
2010年3月        1        4
2010年4月        1        3
2010年5月        1        2
2010年6月        1        5
2010年7月        1        5
2010年8月        1        2
2010年9月        1        3
2010年10月        1        1
2010年11月        1        4
2010年12月        1        5
2010年1月        2        85
2010年2月        2        5
2010年3月        2        2
2010年4月        2        6
2010年5月        2        6
2010年6月        2        5
2010年7月        2        3
2010年8月        2        1
2010年9月        2        1
2010年10月        2        5
2010年11月        2        5
2010年12月        2        85
2010年1月        3        1
2010年2月        3        4
2010年3月        3        4
2010年4月        3        4
2010年5月        3        8
2010年6月        3        8
2010年7月        3        5
2010年8月        3        2
2010年9月        3        1
2010年10月        3        4
2010年11月        3        1
2010年12月        3        4


二维码

扫码加我 拉你入群

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

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

全部回复
2014-1-22 16:15:06
如果不介意排序,可以试试这个:

假设你的数据集的名字是test

proc sort data=test;
by date;
run;
proc transpose data=test out=wanted(drop=_name_) prefix=group;
by date;
var value;
id group;
run;
二维码

扫码加我 拉你入群

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

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

2014-1-22 21:25:58
wwang111 发表于 2014-1-22 16:15
如果不介意排序,可以试试这个:

假设你的数据集的名字是test
能够简单讲解一下by 和 id 的作用,以及proc sort中不能by group date,如蒙赐教,万分感激!
二维码

扫码加我 拉你入群

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

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

2014-1-23 04:41:58
firefox29 发表于 2014-1-22 21:25
能够简单讲解一下by 和 id 的作用,以及proc sort中不能by group date,如蒙赐教,万分感激!
简单来讲,by之后的是转换后的数据集的level需要的变量,像这里你的目标数据集里每一行都在变量date里面,只有一层level,所有by的后面只有date。而id的作用是改变转换后数据的变量名,若没有的话,变量名会是col1,col2,col3,加入id group后变量名就变为group里对应的值了,本例中就是1,2,3。但是之前有用到prefix=group,所以最后变量名就是group1, group2, group3了。
二维码

扫码加我 拉你入群

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

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

2014-1-23 07:21:24
xiaoyu163 发表于 2014-1-23 04:41
简单来讲,by之后的是转换后的数据集的level需要的变量,像这里你的目标数据集里每一行都在变量date里面, ...
多谢解答!万分感谢!!
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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