如何对两个变量的和执行PROC UNIVARIATE分析?
解决PROC UNIVARIATE计算变量和分布的报错问题
错误原因
PROC UNIVARIATE的VAR语句仅支持引用数据集中已存在的变量名,不能直接在该语句中使用SUM()函数或其他计算表达式,这就是你执行代码时出现错误的原因。
解决方案
有两种常用方式可以实现需求:
方案1:数据步预处理生成新变量
先通过DATA步创建包含两个变量之和的新变量,再用PROC UNIVARIATE分析这个新变量:
/* 创建包含求和变量的临时数据集 */ data temp_perf; set data.performance; /* 直接相加,若任一变量缺失则结果缺失 */ total_amount = inc_Cash + out_wire; /* 可选:用SUM函数自动忽略缺失值,仅当两个变量都缺失时结果才为缺失 */ /* total_amount = sum(inc_Cash, out_wire); */ run; /* 对求和变量进行分布分析 */ proc univariate data=temp_perf; var total_amount; quit;
方案2:用PROC SQL创建临时视图(无需生成物理数据集)
如果不想额外生成物理数据集,可以用PROC SQL创建临时视图,直接基于原数据集计算求和变量:
proc sql; create view perf_view as select *, inc_Cash + out_wire as total_amount /* 可选:替换为sum函数处理缺失值 */ /* select *, sum(inc_Cash, out_wire) as total_amount */ from data.performance; quit; proc univariate data=perf_view; var total_amount; quit;
内容的提问来源于stack exchange,提问作者lookingforCodeAssists
相关产品推荐
相关产品推荐

