SAS中文论坛

标题: 问几个头疼的简单问题 [打印本页]

作者: shiyiming    时间: 2008-8-14 16:08
标题: 问几个头疼的简单问题
1、函数sum()和min()能不能对变量variable列求值
例如 min(x),sum(age)等等,我试了好像不行,有没有函数可以简单的完成?

2、我在一个data step里边写下求值公式,求了两个值,怎样把他输出到另外的data step里边,例如
data ynb2.ftp1;
set ynb.d_zz_test(keep=ZZRQ  HBF  KMH  BRDFYE);
if year(DATEPART(ZZRQ))=2007 and HBF='RMB' and BRDFYE NE
0 and (substrn(KMH,1,3)='201' or substrn(KMH,1,5)
='21101');
NRJDFYE=sum(of BRDFYE:)/365;
MIN_BRDFYE=min(BRDFYE);
CDL=MIN_BRDFYE/NRJDFYE;
output;
run;

这里边求出来的两个值NRJDFYE、CDL能不能在另外的过程里边被调用,我试了可是另外的过程找不到这两个变量

3、set ynb2.ftp1 ynb2.ftp2 ynb2.ftp3 ynb2.ftp4;  这样的语句可以输入多个数据集

但是proc  print data=  后面能不能输入多个数据集,我按set ynb2.ftp1 ynb2.ftp2 ynb2.ftp3 ynb2.ftp4; 这样写好像不行
作者: shiyiming    时间: 2008-8-17 23:22
标题: Re: 问几个头疼的简单问题
1、函数sum()和min()能不能对变量variable列求值
例如 min(x),sum(age)等等,我试了好像不行,有没有函数可以简单的完成?
[color=#FF0000:1h5bhdzc]答:这两个函数在sas data步中都是需要至少两个变量,你可以用proc sql,这样更简单,或者用sas的data步处理。[/color:1h5bhdzc]
2、我在一个data step里边写下求值公式,求了两个值,怎样把他输出到另外的data step里边,例如
data ynb2.ftp1;
set ynb.d_zz_test(keep=ZZRQ HBF KMH BRDFYE);
if year(DATEPART(ZZRQ))=2007 and HBF='RMB' and BRDFYE NE
0 and (substrn(KMH,1,3)='201' or substrn(KMH,1,5)
='21101');
NRJDFYE=sum(of BRDFYE:)/365;
MIN_BRDFYE=min(BRDFYE);
CDL=MIN_BRDFYE/NRJDFYE;
output;
run;

这里边求出来的两个值NRJDFYE、CDL能不能在另外的过程里边被调用,我试了可是另外的过程找不到这两个变量
[color=#FF0000:1h5bhdzc]答:这里可以用call symput('NRJDFYE',NRJDFYE)你在别的地方用的时候用&NRJDFYE引用下就可以了。[/color:1h5bhdzc]
3、set ynb2.ftp1 ynb2.ftp2 ynb2.ftp3 ynb2.ftp4; 这样的语句可以输入多个数据集

但是proc print data= 后面能不能输入多个数据集,我按set ynb2.ftp1 ynb2.ftp2 ynb2.ftp3 ynb2.ftp4; 这样写好像不行
[color=#FF0000:1h5bhdzc]答:按逻辑来讲,干嘛一次打印那么多表?人也看不过来啊,一次一张表不是更好?[/color:1h5bhdzc]
作者: shiyiming    时间: 2008-8-18 15:32
标题: Re: 问几个头疼的简单问题
谢谢指教




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