在sas治疗x时间箱图

时间:2014-10-21 19:46:40

标签: sas boxplot

我正在尝试在SAS中制作一个箱形图,在同一个图表中显示5个周期的2个处理。我可以让它做一个或另一个但不是两个。代码如下。

proc boxplot data=data;
id treatment;
plot pred1*sample;
run;

也尝试了

proc boxplot data=data;
plot (pred1 sample)*treatment;
run;
无论如何都没有运气。有任何想法吗?似乎这应该是直截了当的。

由于

1 个答案:

答案 0 :(得分:3)

proc sgplot可能会这样做,如果我理解正确,如果你有正确版本的SAS(9.3+或者9.4+,我不确定哪个)。

我假设你想要两个盒子,一个用于pred,一个用于样品。这是一个简单的例子:

data treatments;
  call streaminit(7);
  do treatment=1 to 2;
    do period=1 to 5;
      pred1 = treatment+period+rand('normal')*4;
      sample = treatment+period+rand('normal')*5;
      output;
    end;
  end;
run;


proc sgplot data=treatments;
  hbox pred1/ category=treatment legendlabel='Prediction' discreteoffset=.2 boxwidth=0.2;
  hbox sample/category=treatment legendlabel='Sample' boxwidth=0.2;
run;

我使用discreteoffset(稍微移动一下条)将它们设置在一起,然后收缩条以匹配偏移量。

First Example

您还可以使用group来执行此操作,使用垂直数据集(即,一个'值'变量,其中包含一个指示符,用于标识他们所在的结果组)。 / p>

data treat_vert;
  set treatments;
  group='Prediction';
  value=pred1;
  output;
  group='Sample';
  value=sample;
  output;
run;
 proc sgplot data=treat_vert;
   hbox value/category=treatment group=group;
 run;

Second Example using GROUP

两种选择在标签/等方面都有很大的灵活性。如果你想走那条路。