全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1831 1
2007-06-06

A:
obs id price date
1 1 10 3
2 1 10 4
3 1 10 5
4 1 12 6
依此类推直到
2000 1 12 2002
2001 2 3 4
2002 2 3 5
2002 2 3 6

B:
id price_for_date1 price_for_date2 price_for_date3 ... ... price_for_date2000
1 . . 10 10 12 ... ... 12
2 . . . 3 3 3 . . . ... ... .

和之前那个A to B不同的是:
1 这个不是用input, card来指定,因为原数据表很大,包含上千个id, 3million rows
2 各个id对应的obs数目不同,譬如,id1 有2000个obs, id2只有3个,所以程序要能自动识别
3 第四列队应date,date的值是1 到2000,也就是说,当转换成B后,如果该id没有对应的date值,就当作missing value '.' 譬如,id1的前两个值和id2的除4,5,6以外的其他值都是missing values

我刚开始解除sas,所以对相关的crosstab操作不太清楚,请问是否有朋友能否给出code,谢谢!

二维码

扫码加我 拉你入群

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

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

全部回复
2007-6-6 21:00:00

data A;
infile "data.txt";
input obs id price date;
;
**** TRANSPOSE data;
proc transpose
data = A
out = B
prefix = price_for_date;
by id;
id date;
var price;
run;

Just try it... good luck...

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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