第一题:
采用恰当的input语句输入数据。如下数据集。
data a;
length b$22 ;
infile 'D:\mySASDATA\2-3zhou\1.txt' encoding=utf8;
input a b$ c d$;
run;
proc print data=a;
var a b c d;
run;
第二题:
data shuju11;
set Mylib.shuju1;
rename var1=code var2=name var3=date var4=close;
label var1="编号" var2="简称" var3="日期" var4="收盘价";
run;
data shuju12;/*计算日百分比收益率*/
set shuju11;
closelag=lag(close);
closedif=dif(close);
d_return=(closedif/closelag)*100;
label closelag="上期收盘价" closedif="价差" d_return="日百分比收益率%";
run;
data shuju21;
set Mylib.shuju2;
rename var1=code var2=name var3=date var4=zdf var5=scu var6=volume;
label var1="编号" var2="简称" var3="日期" var4="涨跌幅" var5="成交额" var6="持仓量";
run;
data shuju3;/*使用drop语句保存日收益率,日期*/
set shuju12;
drop code name closelag close closedif;
run;
data shuju4;/*使用keep语句保存日收益率,日期*/
set shuju12;
keep date d_return;
run;
data shuju5;/*使用merge 语句将两个数据集合并*/
merge shuju11 shuju21;
run;
data shuju6;/*提取每个月末的数据*/
set shuju11;
y=year(date);
m=month(date);
week=week(date);
run;
proc sort data=shuju6;
by y m;
run;
data shuju7;
set shuju6;
by y m;
if last.m;
run;
data shuju8;/*计算月度收益率*/
set shuju7;
closelag=lag(close);
closedif=dif(close);
m_return=(closedif/closelag)*100;
run;
第三题:
data a; /*利用内含报酬率法*/ rA=intrr(1,-1000,100,100,300,300,400,400);
rB=intrr(1,-1000,250,300,300,300,400);
better="A";
label better="较好的方案";
if rA>rB then better="A";
else better="B";
run;
data b;/*利用净现值法*/
NPVA=netpv(0.08,1,-1000,250,300,300,300,400);
NPVB=netpv(0.08,1,-1000,100,100,300,300,400,400);
better="A";
label better="较好的方案";
if NPVA>NPVB then better="A";
else better="B";
run;
第四题:
data c1;
PV=compound(.,20,0.06,10);
PMT=saving(200000,.,0.055/12,120);
run;
第五题:
data a;
do i=0 to 100 by 1;
x=normal(i);
y=uniform(i);
n=i+1;
x1=normal(n);
y1=ranpoi(i,abs(x));
z=uniform(n);
x2=abs(x);
x3=log(x2);
x4=floor(x);
x5=ceil(x);
x6=x-lag(x);
x7=round(x,0.1);
x8=probnorm(x);
output;
end;
run;
第六题:
data wangquan;
do n=2 to 1000;
sum=0;
do m=1 to n;
if mod(n,m)=0 and m<n then do;
sum=sum+m;
end;
end;
if sum=n then output;
end;
label sum="完全数";
run;
文章内容仅供参考