SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 730|回复: 3
打印 上一主题 下一主题

急:程序出错,请大家帮助看看,谢谢!

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-6-15 19:30:41 | 只看该作者

急:程序出错,请大家帮助看看,谢谢!

data CGDATA.stockshare;
    set CGDATA.computationaldata;
    keep _col0 _col1 _col4 _col5-_col11;
run;

data CGDATA.stockshare(drop=i);
   set CGDATA.stockshare;
   array stockshare{*} _col5-_col11;
   array con20{*} con20_2002-con20_2008;
   array con2050{*} con2050_2002-con2050_2008;
   array con50{*} con50_2002-con50_2008;
     do i=1 to 7;
     if stockshare{i} < 0.2 then con20{i}=1;else con20{i}=0;
     if stockshare{i} >= 0.2 and stockshare{i} <= 0.5 then con2050{i}=1;else con2050{i}=0;
     if stockshare{i} > 0.5 then con50{i}=1;else con50{i}=0;
  end;
run;
程序的目的是:构建虚拟变量
              1. 2002-2008年度 ,持股比例小于0.2时,con20_2002-con20_2008均为1,否则为0
                         2. 2002-2008年度 ,持股比例在0.2--0.5之间时,con2050_2002-con2050_2008均为1,否则为0
                         3. 2002-2008年度 ,持股比例大于0.5时,con50_2002-con50_2008均为1,否则为0

但是程序运行结果为:
                         只有符合第1和第3条件,但是持股比例在持股比例在0.2--0.5之间时,con2050_2002-con2050_2008仍然全为0,这不对呀。
请大家帮助看看,谢谢
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-6-15 20:55:05 | 只看该作者

Re: 急:程序出错,请大家帮助看看,谢谢!

the code looks allright.
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2009-6-15 22:24:05 | 只看该作者

Re: 急:程序出错,请大家帮助看看,谢谢!

你的代码没有问题,下面是我检验的。问题出在你的原数据上面,你要去检查一下,你的源数据里面是否含0.2到0.5间的数。

data stockshare(drop=i);
/*set CGDATA.stockshare;*/

array stockshare{*} _col5-_col11 (0.4,0.4,0.4,0.4,0.4,0.4,0.4);
array con20{*} con20_2002-con20_2008;
array con2050{*} con2050_2002-con2050_2008;
array con50{*} con50_2002-con50_2008;
do i=1 to 7;
        if stockshare{i} < 0.2 then con20{i}=1;else con20{i}=0;
        if stockshare{i} >= 0.2 and stockshare{i} <= 0.5 then con2050{i}=1;else con2050{i}=0;
        if stockshare{i} > 0.5 then con50{i}=1;else con50{i}=0;
        put con2050{i}=;
end;

run;

结果是
con2050_2002=1
con2050_2003=1
con2050_2004=1
con2050_2005=1
con2050_2006=1
con2050_2007=1
con2050_2008=1
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2009-6-15 22:27:37 | 只看该作者

Re: 急:程序出错,请大家帮助看看,谢谢!

谢谢楼上的同学,我这里有部分数据:
_COL0        _COL1        _COL4        _COL5        _COL6        _COL7        _COL8        _COL9        _COL10        _COL11
000925.SZ        浙江海纳        集成电路        62.44        62.44        28.44        28.44        24        24        24
600171.SH        上海贝岭        集成电路        38.45        35.62        35.11        35.11        27.8        27.8        27.81
600817.SH        *ST宏盛        集成电路        45.29        45.29        45.29        40.16        40.16        39.77        31.65
600360.SH        华微电子        分立器件        55.93        28.58        28.58        28.58        28.58        25.86        25.86
600363.SH        联创光电        分立器件        30.83        30.83        30.83        30.83        32.42        27.42        27.42
原来是由于用的是没带百分号的数据,再次表示感谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-5 19:44 , Processed in 0.195271 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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