/******************************************************************************
 * Programme : Opción de conjunto de datos INDEX=
 * Reference : OPCION92CC
 * Source    : https://www.wearecas.eu/en/sampleCode/OPCION92CC
 ******************************************************************************/

/* --- BLOC 1 --- */
data mydata;
    input ssn $ city $ state $;
    datalines;
123-45-6789 Raleigh NC
987-65-4321 Cary NC
111-22-3333 Apex NC
444-55-6666 Durham NC
123-45-6789 Raleigh NC
. missing_city missing_state
;
run;

data new(index=(ssn));
    set mydata;
run;

/* --- BLOC 2 --- */
data mydata;
    input ssn $ city $ state $;
    datalines;
123-45-6789 Raleigh NC
987-65-4321 Cary NC
111-22-3333 Apex NC
444-55-6666 Durham NC
123-45-6789 Raleigh NC
. missing_city missing_state
;
run;

data new(index=(cityst=(city state)));
    set mydata;
run;

/* --- BLOC 3 --- */
data mydata;
    input ssn $ city $ state $;
    datalines;
123-45-6789 Raleigh NC
987-65-4321 Cary NC
111-22-3333 Apex NC
444-55-6666 Durham NC
123-45-6789 Raleigh NC
. missing_city missing_state
;
run;

data new(index=(ssn cityst=(city state)));
    set mydata;
run;

/* --- BLOC 4 --- */
data mydata;
    input ssn $ city $ state $;
    datalines;
123-45-6789 Raleigh NC
987-65-4321 Cary NC
111-22-3333 Apex NC
444-55-6666 Durham NC
;
run;

/* This will fail if there are duplicates in ssn (like '123-45-6789') */
data new(index=(ssn /unique));
    set mydata;
run;

/* --- BLOC 5 --- */
data mydata;
    input ssn $ city $ state $;
    datalines;
123-45-6789 Raleigh NC
987-65-4321 Cary NC
. missing_city missing_state
111-22-3333 Apex NC
;
run;

data new(index=(ssn /nomiss));
    set mydata;
run;

/* --- BLOC 6 --- */
data mydata;
    input ssn $ city $ state $;
    datalines;
123-45-6789 Raleigh NC
987-65-4321 Cary NC
111-22-3333 Apex NC
. missing_city missing_state
;
run;

data new(index=(ssn /unique/nomiss cityst=(city state) /unique/nomiss));
    set mydata;
run;

