Hi,

I have a dataset

A B C 5.450 26.950 1.000 4.850 26.030 0.000 2.650 21.960 0.000 2.720 22.310 0.000

I would like to subset data for values C=1 as shown below:

A B C 3.520 24.270 1.000 3.730 24.720 1.000 4.650 25.930 1.000

Could you please let me know how to do this?

Have a nice time

## 1 Answer

0

You can use the selif command to "select" some rows of the data "if" they meet some condition.

`selif`

takes two inputs:

- The data from which the subset should be selected.
- A vector of 1's and 0's indicating which rows should be selected.

Since your third column is already a vector with 1's for the rows we want to select, you can just do this:

```
X = { 3.52 24.27 1,
3.73 24.72 1,
4.65 25.93 1,
5.45 26.95 1,
4.85 26.03 0,
2.65 21.96 0,
2.72 22.31 0 };
// Select rows where the element
// in the third row is non-zero
X_subset = selif(X, X[.,3]);
print X_subset;
```

which will print out:

3.520 24.270 1.000 3.730 24.720 1.000 4.650 25.930 1.000 5.450 26.950 1.000

## Your Answer

## 1 Answer

You can use the selif command to "select" some rows of the data "if" they meet some condition.

`selif`

takes two inputs:

- The data from which the subset should be selected.
- A vector of 1's and 0's indicating which rows should be selected.

Since your third column is already a vector with 1's for the rows we want to select, you can just do this:

```
X = { 3.52 24.27 1,
3.73 24.72 1,
4.65 25.93 1,
5.45 26.95 1,
4.85 26.03 0,
2.65 21.96 0,
2.72 22.31 0 };
// Select rows where the element
// in the third row is non-zero
X_subset = selif(X, X[.,3]);
print X_subset;
```

which will print out:

3.520 24.270 1.000 3.730 24.720 1.000 4.650 25.930 1.000 5.450 26.950 1.000