# Subset data using non-sequential row numbers

I have a data frame with 30 rows and 100 columns (X).

I would like to create a new data frame (Y) with specific rows from the larger data frame.

For example, I would like data frame (Y) to contain rows 1 through 5, 10 through 14, and 20.

I know that I can use the code:

Y<-X[1:5,]

and obtain the first five rows, but I cannot work out a similar code to obtain rows 1:5, 10:14, and 20.

## Answers

Generally, when selecting rows in a data frame or matrix, one uses the familiar X[rows, cols] format. It's helpful to remember that both of the parameters can be generated not simply as simple numbers or sequences, but also through the *concatenation* of numbers and sequences. Therefore, for your problem you can use something like the following:

Y <- X[c(1:5, 10:14, 20), ]

This will select rows 1 through 5, rows 10 through 14, and row 20, together with all of the columns in X, and assign the result to Y.