2014-11-20 2 views
0

У меня есть два индекса для серверных городов, и я хочу вывести резюме.SAS proc tabulate выводит итоговый итог

Вот мой код

proc tabulate data=HAVE missing; 
class Date City/order=data preloadfmt; 
format City $Areaformat.; 
var Index1 Index2; 
table (Date=''), 
     (Index1={Label="AAA" s=[cellwidth=2in just=c]}*(sum='') Index2={Label="BBB" s=[cellwidth=2in 
     just=c]}*(sum='')) * (City='' all=Total); 
run; 

Вот пример вывода.

        Index1       Index2 
        City1 City2 City3 Total City1  City2 City3 Total 
01Nov2014   1  2  1  4  1   1  1  3 
02Nov2014   2  2  1  5  2   1  2  5 

Но мне нужно что-то вроде

        Index1       Index2     Index Total 
        City1 City2 City3 Total City1  City2 City3 Total  Grand Total 
01Nov2014   1  2  1  4  1   1  1  3   7 
02Nov2014   2  2  1  5  2   1  2  5   10 

Кроме того, у меня есть еще один выход из proc tabulate который показывает идеальный индекс на каждый день.

proc tabulate data=Ideal missing; 
class Date; 
var Index1 Index2; 
table (Date=''), 
     (Index1={Label="Ideal Index1"}*(sum='Total') Win={Index2="Ideal Index2"}*(sum='Total')); 
run; 

Вот еще один выход.

    Ideal1  Ideal2 
        Total   Total 
01Nov2014   4   3 
02Nov2014   5   5 

Есть ли способ, чтобы добавить таблицу идеальных индексов справа от желаемого выхода выше (проще для сравнения, а не разделить их на два выходных таблицы)? Наконец, чтобы это было так:

     Index1      Index2   Index Total Ideal1 Ideal2 Ideal Total Diff   
      City1 City2 City3 Total City1 City2 City3 Total Grand Total Total Total Total  
01Nov2014 1  2  1  4  1  1  1  3   7   4  3  7   0 
02Nov2014 2  2  1  5  2  1  2  5   10   5  5  10   0 

ответ

1

Используйте dtdate9 для форматирования даты и времени9. Вы можете потребовать несколько операторов класса, поскольку это не будет preloadformat. Добавьте еще одно в конец для Grand Total.

proc tabulate data=HAVE missing; 
class City/order=data preloadfmt; 
class Date/order=data; 
format City $Areaformat.; 
format date dtdate9.; 
var Index1 Index2; 
table (Date=''), 
     (Index1={Label="AAA" s=[cellwidth=2in just=c]}*(sum='') Index2={Label="BBB" s=[cellwidth=2in 
     just=c]}*(sum='')) * (City='' all=Total) all='Grand Total'; 
run; 
+0

Почему 'dtdate9.' не' date9.'? И могу ли я добавить вывод идеальных индексов справа от выхода cites? – Lovnlust

+1

dtdate9 используется для дат, дата9 используется для переменных даты. Если вы хотите использовать date9, вам придется преобразовать его в переменную даты на другом шаге данных. Вы можете попробовать и добавить его, просто добавив это в инструкцию таблицы после всех. Без кода немного сложно сказать. – Reeza

+0

Добавьте это к предыдущей инструкции таблицы? Но это из другого набора данных. – Lovnlust

Смежные вопросы