How to Select Columns by Index in R (With Examples)

In R, you can select columns of data by their index using the ‘select’ function. This is done by providing the column index of the data you wish to select, which can either be an individual index or a range of indices. The syntax for the select function is ‘select(data, column index)’. The column index can also be provided in the form of column names. Examples of this process are provided within the R documentation.


You can use the following basic syntax to select columns by index in R:

#select specific columns by index
df[ , c(1, 4)]

#select specific columns in index range
df[ , 1:3]

#exclude specific columns by index
df[ , -c(2, 5)]

The following examples show how to use this syntax in practice with the following data frame:

#create data frame
df <- data.frame(team=c('A', 'B', 'C', 'D', 'E'),
                 points=c(99, 90, 86, 88, 95),
                 assists=c(33, 28, 31, 39, 34),
                 rebounds=c(30, 28, 24, 24, 28),
                 blocks=c(7, 7, 5, 9, 13))

#view data frame
df

  team points assists rebounds blocks
1    A     99      33       30      7
2    B     90      28       28      7
3    C     86      31       24      5
4    D     88      39       24      9
5    E     95      34       28     13

Example 1: Select Columns by Index

The following code shows how to select specific columns by index:

#select columns in 1st and 4th position
df[ , c(1, 4)]

  team rebounds
1    A       30
2    B       28
3    C       24
4    D       24
5    E       28

Example 2: Select Columns in Index Range

The following code shows how to select specific columns in an index range:

#select columns in positions 1 through 3
df[ , 1:3]

  team points assists
1    A     99      33
2    B     90      28
3    C     86      31
4    D     88      39
5    E     95      34

Example 3: Exclude Columns by Index

The following code shows how to exclude specific columns by index:

#select all columns except columns in positions 2 and 5
df[ , -c(2, 5)]

  team assists rebounds
1    A      33       30
2    B      28       28
3    C      31       24
4    D      39       24
5    E      34       28

Notice that this returns all of the columns in the data frame except for the columns in index positions 2 and 5.

The following tutorials explain how to perform other common operations on data frame columns in R:

x