楼主: caliphcheng
1234 3

[问答] 关于输入数据的问题,我想把数据表转换成自己想要的格式 [推广有奖]

  • 0关注
  • 0粉丝

本科生

4%

还不是VIP/贵宾

-

威望
0
论坛币
5 个
通用积分
0.0173
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1574 点
帖子
49
精华
0
在线时间
38 小时
注册时间
2012-4-10
最后登录
2016-12-8

楼主
caliphcheng 发表于 2013-10-2 08:25:10 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
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

二维码

扫码加我 拉你入群

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

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

关键词:数据表 normal output print value 数据表

沙发
yongyitian 发表于 2013-10-2 09:46:02
  1. data q1_0;
  2.   infile datalines dsd;
  3.   length status $8. Temp $50.;
  4.    input status $ @10 Temp $;
  5.      value = 0;
  6.          i = 1;
  7.     do until(value=' ');
  8.      value = input(scan(Temp, i, ' '), best.);
  9.       output;
  10.       i+1;
  11.     end;
  12.     drop Temp i;
  13. datalines;
  14. GOOD     28 26 31 27 35 22 35 23 21
  15. NOORMAL  34 29 25 31 29 43 21 43 21 45 32 12 34 23
  16. BAD      31 25 27 29 28
  17. ; run;

  18. data q1_0;
  19.     set q1_0;
  20.     if missing(value) then delete;
  21. run;
复制代码

藤椅
妖帝东皇 发表于 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;
第一个类型的数据(没一行的格式相同)这样做简单点!
但是数据多了也是问题,还有一个就是你说的第二个数据类型,也没法做!等高手来!!!
┏━━━━━━━━━━━━━━┓
   ☞❤学而无友必然孤陋寡闻!❤
┗━━━━━━━━━━━━━━┛

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

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

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