sas - 在 SAS 中使用 where 条件的百分比拆分
问题描述
一般来说,我是 SAS 和数据分析的新手。很抱歉,如果我的问题听起来太愚蠢了。我有一个包含三个变量的品牌药数据集。变量 1 包含药物名称,变量 2 包含该药物是 BRANDED、Generic 还是 Brand-Generic,变量 3 包含该药物的总销售额。我想要的是在总药品销售中分配品牌、通用和品牌通用药物的百分比。最终输出应该看起来像 Branded : 35% Generic : 25% Branded-Generic : 40%
非常感谢任何有关 sas 代码的帮助,谢谢。
解决方案
所以你想要一个 % 的销售分成!您可以尝试使用 SQL ( proc sql
) 来获得您想要的答案。
proc sql;
create table want as
select drug_type, sum(total_sale) as tot_sale
from have
group by drug_type;
create table want as
select *, tot_sale/sum(tot_sale) as percent_sale format=percent10.2
from want;
quit;
我创建了一个表格“想要”,其中包含每种药物类型的总销售额。使用该表,我创建了一个包含计算出的销售百分比的列,并将其格式化为百分比(以便于查看)。
当然,还有其他方法可以做到这一点,比如使用proc summary
orproc freq
甚至是data step
. 但作为一个初学者,我想从 SQL 开始会是一个不错的决定。
推荐阅读
- excel - 生成具有动态范围的下拉列表
- random-forest - 训练测试有效数据集...关于拟合模型的一般问题
- parsing - 使用 ANTLR4 确定文件中某个位置的上下文
- c# - 如何屏蔽线渲染器
- c - 提交非数字后,Scanf 不接受输入
- google-app-engine - gcloud appengine 使用 app.yaml 中的动态 url 路径匹配静态文件路径
- c# - 如何在 LINQ to Entities 中使用包含任意属性选择而不评估 IQueryable?
- php - Doctrine2 - 将数字保存为负值
- powershell - 如何在 Powershell 中从 PDF 文件中的特定单元格获取文本
- select - 用平均值和标准差绘制选定的行 (GNUPlot)