SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 727|回复: 4
打印 上一主题 下一主题

怎样在sas中找到特定的数?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-7-12 11:33:00 | 只看该作者

怎样在sas中找到特定的数?

请教大虾一个问题,怎样在一个1*14的sas数据集中,如列名为u1-u14,把其中的某一个赋值给d,做一个循环?以下是我的程序,大虾帮忙看看哪有问题?
data a;
set b;
MaxUr=-1;
j=0;
do i=1 to 14 ;
d=u(i);
if d>maxur then maxur=d;
j=i;

keep  MaxUr u1-u14 d;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-7-12 12:48:32 | 只看该作者

Re: 怎样在sas中找到特定的数?

data a;
input u1-u14;
cards;
1 2 3 4 5 6 7 8 9 10 11 12 14 13
;
run;
data b;
retain maxur -1 d 0;
set a;
array u u1-u14;
do over u;
d=u;
if d>maxur then maxur=d;
end;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2008-7-12 16:09:05 | 只看该作者

Re: 怎样在sas中找到特定的数?

大虾,换成下面的程序就找不到最大值的位置在哪了。这个程序找到的d=13,正确的应该是10吧。阁下再仔细看一下哪有问题?
data a;
input u1-u14;
cards;
1 2 3 4 5 6 7 8 9 20 11 12 14 13
;
run;
data b;
retain maxur -1 d 0;
set a;
array u u1-u14;
do over u;
d=u;
if d>maxur then maxur=d;
end;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2008-7-12 16:37:06 | 只看该作者

Re: 怎样在sas中找到特定的数?

data a;
input u1-u14;
cards;
1 2 3 4 5 6 7 8 9 20 11 12 14 13
;
run;
data b;
retain maxur -1 d 0;
set a;
array u u1-u14;
do i=1 to 14 ;
if u{i}>maxur then do;
maxur=u{i};
d=i;
end;
end;
run;
我原来以为d只不过是一个中间变量,现在明白了它是最大值的位置,现在写了一个,您先试一下。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2008-7-12 21:22:08 | 只看该作者

Re: 怎样在sas中找到特定的数?

谢谢大虾的回复!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-4 21:41 , Processed in 0.080868 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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