日期按年份分组的箱线图

Boxplots where date grouped by year

我最近问了一个 关于 SAS 分组的问题。根据这个问题,并使用相同的数据集,我正在努力制作箱线图。

数据如下所示:

Date    Close   Volume
12/31/2014  222.41  2402097
12/30/2014  222.23  2903242
12/29/2014  225.71  2811828
12/26/2014  227.82  3327016
12/24/2014  222.26  1333518
12/23/2014  220.97  4513321
12/22/2014  222.6   4806917
12/19/2014  219.29  6910461
12/18/2014  218.26  7483349
12/17/2014  205.82  7367834
12/16/2014  197.81  8426105
12/15/2014  204.04  5218252
12/12/2014  207 7173782

这个数据集实际上涵盖了 2013 年 - 14 年的整整两年。我想要一个每年的箱线图和变量(收盘价和成交量)。

这是我尝试过的:

proc boxplot data=tsla;
class Date;
format Date year.;
   plot Close*Date;
run;

但是returns一个错误“

ERROR 180-322: Statement is not valid or it is used out of proper order.
162  format Date year.;
163     plot Close*Date;
164  run;

那么正确的顺序是什么?

我怎样才能让 SAS 给我总共 4 个箱线图? 2 个变量(收盘价和成交量)和超过两年 (2013 - 14)?

proc boxplot中没有class语句。

首先,使用数据步骤添加一个 "year" 变量。

data tsla2;
  set tsla;
  year=year(date);
run;

按年份排序:

proc sort data=tsla2;
  by year;
run;

proc boxplot中使用by语句:

proc boxplot data=tsla2;
  by year;
  plot close*year;
  plot volume*year;
run;

如果您想为每个变量绘制所有年份,则无需排序或使用 by 语句。只要做:

proc boxplot data=tsla2;
  plot close*year;
  plot volume*year;
run;