unique#
Purpose#
Sorts and removes duplicate elements from a vector.
Format#
- y = unique(x[, flag])#
- Parameters:
x (NxM numeric matrix or NxM character data, or NxM string array.) – data
flag (scalar) – Optional input, 1 if numeric data, 0 if character data. Default is 1. string array does not need a flag.
- Returns:
y (Mx1 vector) – sorted x with the duplicates removed.
Examples#
Numeric#
// Create a column vector with duplicate elements
years = { 1632,
2012,
1709,
1812,
1709,
1989,
1830,
1875,
1912,
1912,
1924,
1960 };
// Sort 'years' and remove any duplicate elements
years_unique = unique(years);
After the code above, the variables years
and years_unique
are assigned as follows:
1632
2012 1632
1709 1709
1812 1812
1709 1830
years = 1989 years_unique = 1875
1830 1912
1875 1924
1912 1960
1912 1989
1924 2012
1960
Numeric Matrix#
// Create a numeric matrix with duplicate elements
years = { 1632 2012,
1709 1812,
1709 1989,
1830 1875,
1912 1912,
1924 1960 };
// Sort 'years' and remove any duplicate elements
years_unique = unique(years);
print "years: " years;
print;
print "years_unique:" years_unique;
After the code above, the variables years
and years_unique
are assigned as follows:
years:
1632.0000 2012.0000
1709.0000 1812.0000
1709.0000 1989.0000
1830.0000 1875.0000
1912.0000 1912.0000
1924.0000 1960.0000
years_unique:
1632.0000
1709.0000
1812.0000
1830.0000
1875.0000
1912.0000
1924.0000
1960.0000
1989.0000
2012.0000
Character data#
// Create column character vector, by using
// numeric concatenation operator
levels = "high" | "medium" | "medium" | "low" |
"high" | "medium" | "medium";
// Set flag to indicate data is character data
flag = 0;
// Sort 'levels' alphabetically and
// remove any duplicate elements
levels_unique = unique(levels, flag);
// Note the $ used before the variable which
// tells GAUSS to print as characters
print $levels_unique;
The code above will produce the following output:
high
low
medium
You can reorder these levels with an indexing operation, for example:
levels = levels_unique[2 3 1];
print $levels;
will produce the following output:
low
medium
high
String array vector#
// Create column string array
string levels = { "high", "medium", "medium", "low",
"high", "medium", "medium"};
// Sort 'levels' alphabetically and
// remove any duplicate elements
levels_unique = unique(levels);
print levels_unique;
The code above will produce the following output:
high
low
medium
String array matrix#
// Create 3x2 string array
string levels = { "apple" "watermelon",
"banana" "banana",
"watermelon" "apple" };
// Sort 'levels' alphabetically and
// remove any duplicate elements
levels_unique = unique(levels);
print "levels: " levels;
print;
print "levels_unique:" levels_unique;
The code above will produce the following output:
levels:
apple watermelon
banana banana
watermelon apple
levels_unique:
apple
banana
watermelon
See also
Functions sortc()
, uniquesa()
, uniqindx()