SAS - пропустить пропущенные значения в процедуре таблицы процессов - PullRequest
0 голосов
/ 23 октября 2018

Мне нужна помощь, чтобы пропустить пропущенные значения в процедуре таблицы процессов.Я понимаю, что по правильной процедуре таблицы не рассчитывать недостающие значенияОднако, когда я не указываю / пропускаю переменную класса, результат не будет отображаться, и в журнале будет отображено предупреждение:

ПРЕДУПРЕЖДЕНИЕ: переменная класса, частоты или веса отсутствуетна каждом наблюдении.

Ниже приведен шаг таблицы процесса набора данных:

TITLE j=left "Jadual B1 : Jumlah penduduk mengikut kumpulan etnik, kawasan pihak berkuasa tempa'tan dan negeri, Malaysia, 2010";
Title2 font=bold italic j=left "Table   B1 : Total population by ethnic group, local authority area and state, Malaysia, 2010";
title3 " ";
title4 j=left "Negeri : NEGERI SEMBILAN";
title5 font=bold italic j=left "State";
ods escapechar='^';

proc tabulate data=WORK.DOSM order=data ;

    class DISTRICT NEW_ETHNICITY NEW_CITIZENSHIP  MELAYU BUMI_LAIN CINA INDIA LAIN Bumiputera /missing;

    var ID;
    table ALL DISTRICT=' ', ALL 
        NEW_ETHNICITY={LABEL=' '}* (( Bumiputera ={LABEL=' '}*  (MELAYU={LABEL=' '}* N 
BUMI_LAIN={LABEL=' '} * N ALL) INDIA={LABEL=' '}*N  CINA={LABEL=' '}*N LAIN={LABEL=' '} *N ))



    NEW_CITIZENSHIP={LABEL=' '} 
    /Box='Daerah Pentadbiran/Kawasan Pihak Berkuasa Tempatan ^S={font_style=italic}
                                                        Administrative District/Local Authority Area' row=float;

    keylabel N=' ';
    keylabel all='Jumlah ^S={font_style=italic}/ Total';
    footnote font=arial bold j=left "Nota" font=arial bold italic "/Note:";
    footnote2 j=l f='ARIAL amt/bold' "^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^Angka-angka di atas tidak disesuaikan untuk kurang penghitungan.";
    footnote3 j=l font=bold italic "^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^The above figures have not been adjusted for under enumeration.";
run;

И ниже мой вывод:

Вывод

Но мне нужен результат, чтобы не отображать пропущенные значения в соответствии с выделенными красным цветом столбцами.

1 Ответ

0 голосов
/ 23 октября 2018

Вы можете иметь несколько операторов CLASS.Определите, какая переменная отсутствует (я думаю, New_Ethnicity) и переместите ее в новый оператор CLASS без отсутствующего параметра для этой переменной.

Пример на основе связанного дубликата выше.

В этом случае работают несколько операторов CLASS:

data test_cars;
  set sashelp.cars;
  if _n_=5 then call missing(make);
  if _n_=7 then call missing(model);
  if _n_=10 then call missing(type);
  if _n_=13 then call missing(origin);
run;

proc tabulate data=test_cars out=test_tabulate(rename=n=count);
class make model type /missing;
class origin;
tables (make model type),origin*n;
run;

Спасибо @Joe за создание образцов данных;)

...