4235 12

[问答] 如何用SAS对变化的变量求和? [推广有奖]

11
离居盈寒暑7 发表于 2017-4-19 01:26:19 |只看作者 |坛友微信交流群
foocares 发表于 2017-4-18 14:54
如上文所言,整理原始数据很重要,比如看了你的数据后我知道你开始计数的年份是从78年开始,到06年结束。
...
哇,谢谢大神!!提供了很清晰的思路~就是还有一点点问题,我按照你的代码跑出来total都是0……不知道是哪里有问题额。程序没有报错。
data test;
set hw5(drop = eventid name location newdate2str location1);
array myar(*) F8 - F36;
startyear =1978;
endyear =2006;
if start < startyear then start = startyear;
start_idx = start - startyear + 1;
if end > endyear then end = endyear;
end_idx = end - startyear + 1;
do i = start_idx to end_idx;
total+myar(i);
end;
put total=;
run;

是不是do语句有问题?

使用道具

12
foocares 发表于 2017-4-20 00:19:58 |只看作者 |坛友微信交流群
离居盈寒暑7 发表于 2017-4-19 01:26
哇,谢谢大神!!提供了很清晰的思路~就是还有一点点问题,我按照你的代码跑出来total都是0……不知道是哪 ...
唔,那也许是SAS在不同机器上导入excel时有些微差距?
你可以临时先加两行:
proc print data=hw5test;
run;
看看导入原始数据表格后是什么样子。
在我这儿看是这样的,所以我知道系统里hw5test有如下变量:

s1.JPG
这是用viewtable看到的hw5test, 所以我知道年份数据变量从F8开始一直到F36. 如果在你那长得不一样,那要对着更改。
s2.JPG

这是最后生成的结果test数据集,我把中间临时的那些start_idx之类的全扔了,只附加最后的total值输出,前十行在这。
s3.JPG


使用道具

13
renjingli2011 发表于 2017-4-20 14:00:13 |只看作者 |坛友微信交流群
用一个dim函数来计算数组里元素的数量。

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-24 19:46