楼主: geliliiloveyou
6890 18

SAS中数组的应用 [推广有奖]

11
geliliiloveyou 在职认证  发表于 2012-6-14 10:46:19 |只看作者 |坛友微信交流群
jingju的程序就是这样算的

使用道具

12
webgu 发表于 2012-6-14 13:03:46 |只看作者 |坛友微信交流群
jingju11 发表于 2012-6-13 21:08
Interesting. How? Jingju
呵呵,搞复杂了。还是倒着计0方便。
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

使用道具

13
webgu 发表于 2012-6-14 15:32:08 |只看作者 |坛友微信交流群
jingju11 发表于 2012-6-13 21:08
Interesting. How? Jingju
试了下,如下:不是很严谨。谨以楼主提供的部分数据为例:
  1. data raw;
  2. input id  h0 h0_5 h1 h2 h3 h4 h5 h6;
  3. datalines;
  4. 1        6        4        3        1        1        0        0        0
  5. 2        7        6        5        3        1        0        0        0
  6. 3        10        10        10        10        .        .        .        .
  7. 4        7        6        4        3        3        2        2        0
  8. 5        8        3        0        0        1        1        1        1
  9. 6        8        6        .        .        .        .        .        .
  10. 7        8        6        3        2        2        2        2        2
  11. 8        6        1        0        0        0        0        0        0
  12. 9        6        3        1        1        0        0        0        0
  13. 10        8        5        2        0        1        3        4        6
  14. 11        7        5        3        1        0        0        0        1
  15. 12        7        5        3        2        0        2        3        4
  16. 13        8        6        4        4        2        3        2        2
  17. 14        7        3        0        0        0        0        0        7
  18. 15        7        6        4        3        1        0        0        0
  19. 16        8        6        1        0        0        0        0        0
  20. 17        8        5        3        1        1        1        0        0
  21. 18        5        4        3        0        0        0        0        0
  22. 19        5        3        3        1        0        0        0        0
  23. 20        7        6        5        5        4        4        3        3
  24. ;

  25. data want (drop=i j y sum missing );
  26. array t[*]         h0_5 h1 h2 h3 h4 h5 h6;
  27.   set raw;
  28. do i=1 to dim(t) until (sum=0);
  29.    do; if missing(t[i]) then missing=1;         else missing=0;
  30.    sum=0;
  31.    end;
  32.   do j=i to dim(t) ;
  33.       sum+t[j];
  34.   end;
  35.   y=vname(t[i]);
  36. if sum^=0 then time="未观察到疼痛消失时间";
  37. else if missing=0  then time=tranwrd(substr(y,2,length(y)-1),"_",".");
  38.        else time="疼痛纪录有缺失";
  39. end;
  40. run;
复制代码
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

使用道具

14
webgu 发表于 2012-6-14 16:33:25 |只看作者 |坛友微信交流群
result:

Obs    h0_5    h1    h2    h3    h4    h5    h6    id    h0    time

           1      4      3     1     1     0     0     0     1     6    4
           2      6      5     3     1     0     0     0     2     7    4
           3     10     10    10     .     .     .     .     3    10    疼痛纪录有缺失
           4      6      4     3     3     2     2     0     4     7    6
           5      3      0     0     1     1     1     1     5     8    未观察到疼痛消失时间
           6      6      .     .     .     .     .     .     6     8    疼痛纪录有缺失
           7      6      3     2     2     2     2     2     7     8    未观察到疼痛消失时间
           8      1      0     0     0     0     0     0     8     6    1
           9      3      1     1     0     0     0     0     9     6    3
          10      5      2     0     1     3     4     6    10     8    未观察到疼痛消失时间
          11      5      3     1     0     0     0     1    11     7    未观察到疼痛消失时间
          12      5      3     2     0     2     3     4    12     7    未观察到疼痛消失时间
          13      6      4     4     2     3     2     2    13     8    未观察到疼痛消失时间
          14      3      0     0     0     0     0     7    14     7    未观察到疼痛消失时间
          15      6      4     3     1     0     0     0    15     7    4
          16      6      1     0     0     0     0     0    16     8    2
          17      5      3     1     1     1     0     0    17     8    5
          18      4      3     0     0     0     0     0    18     5    2
          19      3      3     1     0     0     0     0    19     5    3
          20      6      5     5     4     4     3     3    20     7    未观察到疼痛消失时间
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

使用道具

15
jingju11 发表于 2012-6-15 07:27:05 |只看作者 |坛友微信交流群
So good.

使用道具

16
水together瓶 发表于 2013-10-21 15:59:29 |只看作者 |坛友微信交流群
如果一组数据中同时存在正负数,怎么求这组数的总和呢
因为蔑视一切现有的逻辑,因为打破一切原有的陈规,天才创造了一个凡人所仰望的空间。当天才走到枭雄的道路上时,他无视轻易得到的成就,继续挑战自我,于是他继续成功,继续辉煌。一旦失败他宁可毁灭,因为他不想做

使用道具

学习了

使用道具

18
panglinqi 发表于 2019-10-11 15:02:17 |只看作者 |坛友微信交流群
data raw;
input id h0 h0_5 h1-h6;
datalines;
1 6 4 3 1 1 0 0 0
2 7 6 5 3 1 0 0 0
3 10 10 10 10 . . . .
4 7 6 4 3 3 2 2 0
5 8 3 0 0 1 1 1 1
6 8 6 . . . . . .
7 8 6 3 2 2 2 2 2
8 6 1 0 0 0 0 0 0
9 6 3 1 1 0 0 0 0
10 8 5 2 0 1 3 4 6
11 7 5 3 1 0 0 0 1
12 7 5 3 2 0 2 3 4
13 8 6 4 4 2 3 2 2
14 7 3 0 0 0 0 0 7
15 7 6 4 3 1 0 0 0
16 8 6 1 0 0 0 0 0
17 8 5 3 1 1 1 0 0
18 5 4 3 0 0 0 0 0
19 5 3 3 1 0 0 0 0
20 7 6 5 5 4 4 3 3
;
run;
data want1(drop=i );
        array t[*] h0_5 h1 h2 h3 h4 h5 h6;
          do n=1 to total;
  set raw point=n nobs=total;
                do i=1 to dim(t)  until (t[i]=0  or missing=1 or i=7);
                        if missing(t[i]) then missing=1;
                                else do missing=0; sum+t[i]; end;
                        put n= i=  missing= sum= t[i]=;
                end;
        y=vname(t[i]);
                put  y=;
        if missing=1 then time="疼痛纪录有缺失";
      else if t[i]=0 then time=tranwrd(substr(y,2),"_",".");
                                else time="未观察到疼痛消失时间";                       
output;
  end;
  stop;
  run;

使用道具

19
panglinqi 发表于 2019-10-11 15:07:26 |只看作者 |坛友微信交流群
panglinqi 发表于 2019-10-11 15:02
data raw;
input id h0 h0_5 h1-h6;
datalines;
要注意两个点
一是:(如下),确保逐行运行,不多不少。
do n=1 to total;
  set raw point=n nobs=total;
output;
  end;
二是:明确该循环的终止条件,以及每个条件对应的time值类别。
do i=1 to dim(t)  until (t=0  or missing=1 or i=7);

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 18:02