SAS中文论坛

标题: 求救 [打印本页]

作者: shiyiming    时间: 2013-1-14 16:51
标题: 求救
data sasuser.stress;
       input ID 1-4 Name $ 6-25 RestHR 27-29 MaxHR 31-33
             RecHR 35-37 TimeMin 39-40 TimeSec 42-43
             Tolerance $ 45;
       if tolerance='D';
       TotalTime=(timemin*60)+timesec;
       datalines;
     2458 Murray, W            72  185 128 12 38 D
     2462 Almers, C            68  171 133 10  5 I
     2501 Bonaventure, T       78  177 139 11 13 I
     2523 Johnson, R           69  162 114  9 42 S
     2539 LaMance, K           75  168 141 11 46 D
     2544 Jones, M             79  187 136 12 26 N
     2552 Reberson, P          69  158 139 15 41 D
     2555 King, E              70  167 122 13 13 I
     2563 Pitts, D             71  159 116 10 22 S
     2568 Eberhardt, S         72  182 122 16 49 N
     2571 Nunnelly, A          65  181 141 15  2 I
     2572 Oberon, M            74  177 138 12 11 D
     2574 Peterson, V          80  164 137 14  9 D
     2575 Quigley, M           74  152 113 11 26 I
     2578 Cameron, L           75  158 108 14 27 I
     2579 Underwood, K         72  165 127 13 19 S
     2584 Takahashi, Y         76  163 135 16  7 D
     2586 Derber, B            68  176 119 17 35 N
     2588 Ivan, H              70  182 126 15 41 N
     2589 Wilcox, E            78  189 138 14 57 I
     2595 Warren, C            77  170 136 12 10 S
     ;

为啥出错?
NOTE: 数据集 SASUSER.STRESS 有 0 个观测和 9 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.01 秒
      CPU 时间          0.01 秒
作者: shiyiming    时间: 2013-1-24 19:22
标题: Re: 求救
你问的这一部分的内容实际上关于将外部文本格式的数据导入成SAS数据集的过程,我们首先要知道导入外部数据的类型分为固定型和分隔符固定型,根据这两种不同的类型,有四种输入格式,列输入、列举输入、格式化输入、命名输入。有一本书我觉得非常适合现在的你看《The Little SAS》,建议你有时间可以在网上搜索一下。
作者: shiyiming    时间: 2013-1-24 19:24
标题: Re: 求救
不好意思,刚刚书名掉了一个词 《The little sas book》
作者: shiyiming    时间: 2013-1-31 14:32
标题: Re: 求救
[code:2wieqafb]
data stress;
input ID  Name $  RestHR $   MaxHR RecHR  TimeMin  TimeSec ddd Tolerance $ @@;
cards;
2458 Murray W 72 185 128 12 38 D
2462 Almers C 68 171 133 10 5 I
2501 Bonaventure T 78 177 139 11 13 I
2523 Johnson R 69 162 114 9 42 S
2539 LaMance K 75 168 141 11 46 D
2544 Jones M 79 187 136 12 26 N
2552 Reberson P 69 158 139 15 41 D
2555 King E 70 167 122 13 13 I
2563 Pitts D 71 159 116 10 22 S
2568 Eberhardt S 72 182 122 16 49 N
2571 Nunnelly A 65 181 141 15 2 I
2572 Oberon M 74 177 138 12 11 D
2574 Peterson V 80 164 137 14 9 D
2575 Quigley M 74 152 113 11 26 I
2578 Cameron L 75 158 108 14 27 I
2579 Underwood K 72 165 127 13 19 S
2584 Takahashi Y 76 163 135 16 7 D
2586 Derber B 68 176 119 17 35 N
2588 Ivan H 70 182 126 15 41 N
2589 Wilcox E 78 189 138 14 57 I
2595 Warren C 77 170 136 12 10 S
;
run;
data abs;
        set stress;
        if tolerance='D' then TotalTime=(timemin*60)+timesec;
run;[/code:2wieqafb]
不知道达到楼主的要求,我用SAS也时常遇到这种问题
我的经验:数据要么用空格分割,要么用“,”分隔。不统一最容易出错了。
还有就是不要试图把所有的过程都在一个过程步中完成,分几步,这样思路也清晰,也不容易出错。




欢迎光临 SAS中文论坛 (http://www.mysas.net/forum/) Powered by Discuz! X3.2