全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1171 3
2013-10-02
GOOD        28 26 31 27 35
NOORMAL  34 29 25 31 29
BAD           31 25 27 29 28

我想要的数据格式是两列型的,一个是状态(GOOD NORMAL BAD),一个是数值,也就是说像这样:
GOOD 28
GOOD 26
…………
BAD    29
BAD    28

不知道应该用什么样的代码,我目前用的代码很麻烦,是这样的:
data q1_0;
do i=1 to 3;
do j=1 to 5;
input value @@;
output;
end;
end;
drop j;
cards;
28 26 31 27 35
34 29 25 31 29
31 25 27 29 28
;
run;
proc print data=q1_0;
run;
data q2;
set q1_0;
if i=1 then stat='good';
else if i=2 then stat='normal';
else if i=3 then stat='bad';
run;
proc print data=q2;
run;

但是这样的话,print出来的数据表上的STAT变量的宽度只有4,也就是说“normal”这个值显示的是“norm”,如何才能显示完全啊?



还有,要是stat三项的值的个数不一样的话又要怎么操作呢,我的方法就不行了

比如这样的数据:
GOOD        28 26 31 27 35 22 35 23 21
NOORMAL  34 29 25 31 29 43 21 43 21 45 32 12 34 23
BAD           31 25 27 29 28

二维码

扫码加我 拉你入群

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

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

全部回复
2013-10-2 09:46:02
复制代码
二维码

扫码加我 拉你入群

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

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

2013-10-2 10:03:15
data s;
infile 'C:\Users\XPA\Desktop\dd.txt';
input style $ n @;
output;
input n @;
output;
input n @;
output;
input n @;
output;
input n;
output;
run;
第一个类型的数据(没一行的格式相同)这样做简单点!
但是数据多了也是问题,还有一个就是你说的第二个数据类型,也没法做!等高手来!!!
二维码

扫码加我 拉你入群

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

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

2013-10-3 01:41:15
妖帝东皇 发表于 2013-10-2 10:03
data s;
infile 'C:\Users\XPA\Desktop\dd.txt';
input style $ n @;
你的代码在每个level的数据比较少的情况下很好用,可是如果有成千上万的话就不好搞了
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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