# subset

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

0

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

selif takes two inputs:

1. The data from which the subset should be selected.
2. 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

aptech

1,773

0

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

selif takes two inputs:

1. The data from which the subset should be selected.
2. 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

### Have a Specific Question?

Get a real answer from a real person

### Need Support?

Get help from our friendly experts.