SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

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

我是新手,请各位帮忙,万分感谢!

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2006-4-7 11:41:38 | 只看该作者

我是新手,请各位帮忙,万分感谢!

我是个SAS新手,现在需要一个程序,请好心人帮助,在这里先谢谢各位了!
题名:
有180种植物(spec1-spec180)的省份分布(prov)、气候参数(temp,como,wamo,ffd,rain),现在根据每种植物的现有分布情况,推断其可能扩散的分布省份。
prov    temp   como  wamo  ffd  rain  spec1  spec2  spec3  spec4  spec5...
Anhui  15.5     2         28    225  1225   1        0          0       0         1
Beijing 11       7.5      25    180        600    1        0          0       0         0
Fujian  18.5     9       28.5  275  1500    0        1          0       0         0
Gansu   7       -6       23     180   425    0        0          1       0         1
Guangdong23  12      28    322   1550   0        1          1       0         0
Guangxi 20   10.5      27    315   1750   0        1          0       0         0
Guizhou  15     9        24    270   1250   1        0          0       1         0
Hainan    24   18.5     27    360   1750   0         1         0       1         0
...           ...    ...        ...    ...       ...      ...      ...        ...      ...        ...

其中“1”代表已分布,“0”代表未分布,现在以spec1为例,它现在Anhui、 Beijing、Guizhou有分布,求这些现有分布地区的气候极值,即temp、como、 wamo、 ffd、rain的MAX和MIN值,

If species=1,计算:
maxtemp=max(temp) and
mintemp=min(temp) and
maxcomo=max(como) and
mincomo=min(como) and
maxwamo=max(wamo) and
minwamo=min(wamo) and
maxffd=max(ffd) and
minffd=min(ffd) and
maxrain=max(rain) and
minrain=min(rain)
;并输出结果,标明“spec1的现有分布”。
第二步计算可能的分布区,即
if temp>=mintemp and temp<=maxtemp and
coldmo>=mincomo and coldmo<=maxcomo and
warmmo>=minwamo and warmmo<=maxwamo and
ffdays>=minffd and ffdays<=maxffd and
rain>=minrain and rain<=maxrain

最后输出结果,表明“spec1的可能分布”。

我已经苦想一个多月了,学了n多Sas入门之类的书籍,就是编不出来,请高手帮忙,再次谢谢了!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2006-4-13 03:17:12 | 只看该作者

summary

If I understand your question well, here is code for each of 180种植物(spec1-spec180).

proc sql;
create spec1 as
select prov, temp ,como ,wamo ,ffd ,rain ,spec1
from datasetname
where spec1=1 and
min(temp) <= temp <=max(temp) and
min(como) <= coldmo<=max(como) and
min(wamo) <= warmmo<=max(wamo) and
min(ffd) <= ffdays <=max(ffd) and
min(rain)<= rain<=max(rain);
quit;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2006-4-13 09:25:03 | 只看该作者

zzz

proc sql;
create table spec1 as
select prov, temp ,como ,wamo ,ffd ,rain ,spec1
from datasetname
where spec1=1
having  min(temp) <= temp <=max(temp) and
min(como) <= como<=max(como) and
min(wamo) <= wamo<=max(wamo) and
min(ffd) <= ffd <=max(ffd) and
min(rain)<= rain<=max(rain);
quit;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2006-4-14 12:15:44 | 只看该作者

感谢大家!

非常感谢大家的帮忙,
我经过大家的帮助和刻苦学习,已经解决了问题,再次对大家的关怀与帮助表示感谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2006-4-15 23:32:39 | 只看该作者

请问?

。。。
having min(temp) <= temp <=max(temp) and
min(como) <= como<=max(como) and
min(wamo) <= wamo<=max(wamo) and
min(ffd) <= ffd <=max(ffd) and
min(rain)<= rain<=max(rain);
。。。
is there any possiblity that temp would be less than min(tem) or greater max(temp)? if not, "having clasue" is necessary?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 05:35 , Processed in 0.068413 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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