不能同时打印中位数和平均值

时间:2013-08-08 13:30:01

标签: sas

尝试同时打印中位数和平均值,但我不断收到此错误

警告:文件WORK.STATEE1_MARGINS上已存在可变边距。

警告:重复变量不会包含在输出语句的输出数据集中          1号。

proc means data = state1 noprint mean median nway missing;
class ndc;
var margin; 
output out = state1_margins (drop = _type_) median= mean=;
run;

我只想要一个输出集,其中一列中位数,另一列中指中位数。我不应该用一个proc来做这个吗?

2 个答案:

答案 0 :(得分:1)

你需要告诉它两个变量的名称。

proc means data = state1 noprint mean median nway missing;
class ndc;
var margin; 
output out = state1_margins (drop = _type_) median= mean= /autoname autolabel;
run;

Autoname告诉它使它成为_,这通常很好。您也可以明确指定。 Autolabel告诉它也要将统计数据添加到标签中。

proc means data = state1 noprint mean median nway missing;
class ndc;
var margin; 
output out = state1_margins (drop = _type_) median=median_m mean=mean_m;
run;

或者你喜欢什么。

答案 1 :(得分:1)

那是因为你没有指定输出变量。如果只输入=而没有输出变量的名称,它将默认采用您应用操作的变量的名称。

仅请求1个统计信息时没问题。但是你要求2.
因此,首先他创建可变保证金以包含中位数保证金 但是,它会尝试创建可变边距以包含均值。但它已经存在了!

因此,要解决您的问题,请为输出变量指定不同的名称,例如:

proc means data = state1 noprint mean median nway missing;
    class ndc;
    var margin; 
    output out = state1_margins (drop = _type_) median=median_margin mean=mean_margin;
run;