как выбрать столбец с наибольшим значением - PullRequest
0 голосов
/ 17 июня 2019

У меня есть таблица с различными возможностями семейного положения (столбцы), как мне выбрать таблицу с наибольшим значением и сохранить имя столбца?

Например, ниже приведен мой исходный набор данных:

data test;
infile datalines missover;
INPUT ID Gender $ pct_married pct_common_law pct_single; 
datalines;
1 male 0.5 0.3 0.2
2 female 0.6 0.4
3 male 0.3 0.3 0.4
;

и я хочу посмотреть

data test2;
infile datalines missover;
INPUT ID Status $ pct_married pct_common_law pct_single; 
datalines;
1 pct_married
2 pct_married
3 pct_single
;

Ответы [ 2 ]

2 голосов
/ 17 июня 2019

Создайте массив переменных для поиска. Используйте функцию MAX (), чтобы найти максимальное значение. Затем с помощью функции WHICHN () найдите индекс в массиве, где это значение появляется впервые. Затем используйте функцию VNAME () для преобразования ссылки на массив в имя переменной.

data want ;
  set test;
  array pct pct_: ;
  name = vname(pct[whichn(max(of pct[*]),of pct[*])]);
run;
0 голосов
/ 17 июня 2019

Вы можете использовать proc sql и выражение case:

proc sql;
    select (case when pct_married >= greatest(pct_common_law, pct_single)
                 then 'pct_married'
                 when pct_common_law >= pct_single
                 then 'pct_common_law'
                 else 'pct_single'
            end) as which_is_biggest
    from missover;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...