1

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

警告:文件 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来做到这一点吗?

4

2 回答 2

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;

或者任何你喜欢的。

于 2013-08-08T13:47:08.880 回答
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;
于 2013-08-08T13:47:29.403 回答