SAS中文论坛

标题: 菜鸟问题求助! [打印本页]

作者: shiyiming    时间: 2009-10-1 16:50
标题: 菜鸟问题求助!
每行有一个记录类型标识符
一些学生只提交一项任务
id 263 lee
a1 5 7 9 10
id 432 kate
a1 7 3 10 5
a2 6374
id  956 scott
a2 7867
id 765 melissa
a1 7954
a2 3984
创建一个数据 marks3a,每一个单独的mark 包含总评分记录
eg:
id  name anum mark
432 kate 1     25
432 kate 2     20

我曾尝试用 retain,@,if statement 但它不工作.
高手请指点 ~~ <!-- s:o --><img src="{SMILIES_PATH}/icon_surprised.gif" alt=":o" title="Surprised" /><!-- s:o -->
作者: shiyiming    时间: 2009-10-1 19:47
标题: Re: 菜鸟问题求助!
[code:1ruazktg]data marks3a(drop=flag mark1-mark4);
        retain id name;
        input flag $ @@;
        if upcase(flag)='ID' then input id name $;
        else
                do;
                        if upcase(flag)='A1' then anum=1;
                        else anum=2;
                        input mark1-mark4;
                        mark=sum(of mark1-mark4);
                        output;
                end;
datalines;
id 263 lee
a1 5 7 9 10
id 432 kate
a1 7 3 10 5
a2 6 3 7 4
id 956 scott
a2 7 8 6 7
id 765 melissa
a1 7 9 5 4
a2 3 9 8 4
;[/code:1ruazktg]
作者: shiyiming    时间: 2009-10-1 19:57
标题: Re: 菜鸟问题求助!
Thank you so much~
作者: shiyiming    时间: 2009-10-1 20:24
标题: Re: 菜鸟问题求助!
高手 ,可以再救我一题吗?
       
和以前一样的条件:
每个学生都包含一个记录,每个记录应包含ID,姓名,mark1,mark2,mark1和mark2分总和.
非常感谢
作者: shiyiming    时间: 2009-10-2 07:44
标题: Re: 菜鸟问题求助!
[code:1k7mo1s2]data marks3a(drop=flag);
   retain id name;
   input flag $ @@;
   if upcase(flag)='ID' then input id name $;
   else
      do;
         if upcase(flag)='A1' then anum=1;
         else anum=2;
         input mark1-mark4;
         mark=sum(of mark1-mark4);
         output;
      end;
datalines;
id 263 lee
a1 5 7 9 10
id 432 kate
a1 7 3 10 5
a2 6 3 7 4
id 956 scott
a2 7 8 6 7
id 765 melissa
a1 7 9 5 4
a2 3 9 8 4
;

proc sort data=marks3a;
        by id;
run;

data temp(drop=anum);
        merge marks3a(where=(anum=1) rename=(mark1-mark4=mark1_1-mark1_4 mark=sum_mark1))
                marks3a(where=(anum=2) rename=(mark1-mark4=mark2_1-mark2_4 mark=sum_mark2));
        by id;
run;[/code:1k7mo1s2]
作者: shiyiming    时间: 2009-10-2 12:23
标题: Re: 菜鸟问题求助!
我的 表达大概有点问题 . 答案应该是:
id  name  assigment1mark  assigment2mark   total
263  lee   31                     0                        31
432  kate  25                     20                      45
956  scott  0                     30                       30
765  melissa  26                24                       50
作者: shiyiming    时间: 2009-10-2 12:39
标题: Re: 菜鸟问题求助!
No worries, I have solved the problem. Thanks,hopewell.




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