SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 705|回复: 6
打印 上一主题 下一主题

菜鸟问题求助!

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-10-1 16:50:26 | 只看该作者

菜鸟问题求助!

每行有一个记录类型标识符
一些学生只提交一项任务
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 -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-10-1 19:47:24 | 只看该作者

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]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2009-10-1 19:57:19 | 只看该作者

Re: 菜鸟问题求助!

Thank you so much~
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2009-10-1 20:24:20 | 只看该作者

Re: 菜鸟问题求助!

高手 ,可以再救我一题吗?
       
和以前一样的条件:
每个学生都包含一个记录,每个记录应包含ID,姓名,mark1,mark2,mark1和mark2分总和.
非常感谢
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2009-10-2 07:44:19 | 只看该作者

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]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2009-10-2 12:23:34 | 只看该作者

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
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2009-10-2 12:39:15 | 只看该作者

Re: 菜鸟问题求助!

No worries, I have solved the problem. Thanks,hopewell.
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-6 00:48 , Processed in 0.135926 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表