Does Gauss have similar function as " %in%" in R or "find" in matlab

Hi guys,

First I apologize if my question seems stupid but I'm really stuck here. I want to check whether a number is in a vector or not, what is the command in GAUSS? I know in Matlab there is find function and in R there is %in%, but I tried searching these keywords and couldn't find any.

1 Answer



0



You have a few options, depending on what exactly you are looking to do.

Find if one or more elements in a matrix match a specific value

// Vector to search in
haystack = { 1, 2, 4, 5, 6 };

// Does 'haystack' contain the number 3?
has_3 = contains(haystack, 3);

// Does 'haystack' contain the number 6?
has_6 = contains(haystack, 6);

// Does 'haystack' contain either 3 or 4?
needles = { 3, 4 };
has_34 = contains(haystack, needles);

After the code above:

has_3 = 0
has_6 = 1
has_34 = 1

Find the indices of elements which match a value in a vector

indexcat will the location of elements in a vector from a specified range. Note that the range can be a single number.

// Create a vector
x = { 1, 2, 4, 5, 6, 4, 2 };

// Set 'found' equal to index location
// of 4 in 'x', or return a missing value
idx = indexcat(x, 4);

After the code above:

idx = 3
      6

Find the indices of elements which match one or more values in a vector

If you want to locate more than one element inside of a vector, you can use indnv.

// Create a vector
x = { 1, 2, 4, 5, 6, 3 };

// Elements we are looking for in 'x'
what = { 3, 5 };

// Set 'found' equal to a 2x1 vector,
// containing the index of each element
// of 'what' in 'x' or a missing value
// if it was not found
found = indnv(what, x);

After the code above:

found = 6
        4

aptech

1,773

Your Answer

1 Answer

0

You have a few options, depending on what exactly you are looking to do.

Find if one or more elements in a matrix match a specific value

// Vector to search in
haystack = { 1, 2, 4, 5, 6 };

// Does 'haystack' contain the number 3?
has_3 = contains(haystack, 3);

// Does 'haystack' contain the number 6?
has_6 = contains(haystack, 6);

// Does 'haystack' contain either 3 or 4?
needles = { 3, 4 };
has_34 = contains(haystack, needles);

After the code above:

has_3 = 0
has_6 = 1
has_34 = 1

Find the indices of elements which match a value in a vector

indexcat will the location of elements in a vector from a specified range. Note that the range can be a single number.

// Create a vector
x = { 1, 2, 4, 5, 6, 4, 2 };

// Set 'found' equal to index location
// of 4 in 'x', or return a missing value
idx = indexcat(x, 4);

After the code above:

idx = 3
      6

Find the indices of elements which match one or more values in a vector

If you want to locate more than one element inside of a vector, you can use indnv.

// Create a vector
x = { 1, 2, 4, 5, 6, 3 };

// Elements we are looking for in 'x'
what = { 3, 5 };

// Set 'found' equal to a 2x1 vector,
// containing the index of each element
// of 'what' in 'x' or a missing value
// if it was not found
found = indnv(what, x);

After the code above:

found = 6
        4


You must login to post answers.

Have a Specific Question?

Get a real answer from a real person

Need Support?

Get help from our friendly experts.