如何使用 SAS 计算除法?

编程入门 行业动态 更新时间:2024-10-08 00:24:37
本文介绍了如何使用 SAS 计算除法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我想计算adjusted_volume变量,如下所示;

I want to calculate adjusted_volume variable as I show below;

+------+------+---------------+-------------+-----------------+ | name | date | CountedVOLUME | DailyVolume | adjusted_volume | +------+------+---------------+-------------+-----------------+ | A | 1 | 10 | | | | A | 1 | 11 | 21 | | | A | 2 | 12 | | | | A | 2 | 13 | | | | A | 2 | 14 | 39 | | | A | 3 | 15 | 15 | | | A | 4 | 16 | 16 | | | A | 5 | 17 | | | | A | 5 | 18 | | | | A | 5 | 19 | | | | A | 5 | 20 | 74 | | | A | 6 | 21 | 0.127272727 | | | A | 6 | 22 | 43 | 0.133333333 | | B | 1 | 10 | | | | B | 1 | 11 | 21 | | | B | 2 | 12 | | | | B | 2 | 13 | | | | B | 2 | 14 | 39 | | | B | 3 | 15 | 15 | | | B | 4 | 16 | 16 | | | B | 5 | 17 | | | | B | 5 | 18 | | | | B | 5 | 19 | | | | B | 5 | 20 | 74 | | | B | 6 | 21 | 0.127272727 | | | B | 6 | 22 | 43 | 0.133333333 | +------+------+---------------+-------------+-----------------+

Adjusted_volume = CountedVOLUME/(五天前的 DailyVolumes 总和)

Adjusted_volume = CountedVOLUME/ (Summation of DailyVolumes in five days before)

为了简单起见,我对 A 和 B 使用相同的数字.

I use same number for A and B just for simplicity.

我该怎么做?

推荐答案

这会产生您列出的示例结果.既然你说你想计算 adjusted_volume,我假设 dailyVolume 已经存在于你的基础数据集中.

This produces exactly the sample result you listed. Since you said you wanted to compute adjusted_volume, I assumed dailyVolume is already present in your base dataset.

data have; infile datalines dlm='|' missover; input name $ date countedvolume dailyvolume; datalines; A|1|10 A|1|11|21 A|2|12 A|2|13 A|2|14|39 A|3|15|15 A|4|16|16 A|5|17 A|5|18 A|5|19 A|5|20|74 A|6|21| A|6|22|43 B|1|10 B|1|11|21 B|2|12 B|2|13 B|2|14|39 B|3|15|15 B|4|16|16 B|5|17 B|5|18 B|5|19 B|5|20|74 B|6|21| B|6|22|43 ; run; data want (drop=cnt dv_:); set have; by name date; retain dv_1 dv_2 dv_3 dv_4 cnt 0 dv_sum; if first.name then do; cnt=0; dv_1=0; dv_2=0; dv_3=0; dv_4=0; dv_sum=0; end; adjusted_volume=countedvolume/dv_sum; if last.date then do; cnt=cnt+1; if cnt=1 then dv_4=dailyvolume; else if cnt=2 then dv_3=dailyvolume; else if cnt=3 then dv_2=dailyvolume; else if cnt=4 then dv_1=dailyvolume; else do; dv_sum=dailyvolume+dv_1+dv_2+dv_3+dv_4; dv_4=dv_3; dv_3=dv_2; dv_2=dv_1; dv_1=dailyvolume; end; end; run;

更多推荐

如何使用 SAS 计算除法?

本文发布于:2023-11-29 09:08:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1645962.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:除法   如何使用   SAS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!