# Indexing and Slicing Data Frames in R

• Last Updated : 11 Jul, 2022

## Indexing the Data Frame

By indexing the Data Frame we will get the particular column data. Indexing can be done by specifying column name in square brackets. The syntax for indexing the data frame is-

dataframeName[“columnName”]

Example: In this example let’s create a Data Frame “stats” that contains runs scored and wickets taken by a player and perform indexing on the data frame to extract runs scored by players.

## R

 # create a data frame  stats <- data.frame(player=c('A', 'B', 'C', 'D'),                 runs=c(100, 200, 408, NA),                 wickets=c(17, 20, NA, 5))    print("stats Dataframe") stats    # fetch data in certain column stats["runs"]

Output:

"stats Dataframe"
player runs wickets
1      A  100      17
2      B  200      20
3      C  408      NA
4      D   NA       5
runs
1  100
2  200
3  408
4   NA

## Slicing the Data Frame

Slicing the Data Frame gives the required rows and columns. This can be done by three ways. They are listed below-

• Slicing with [ , ]
• Slicing with logical vectors.
• Slicing with subset().

### Slicing with [ , ]

Slicing the data frame with [ , ] returns data of specified rows and columns. The syntax of this is mentioned below-

dataframeName[ fromRow : toRow , columnNumber]

Example:

In the below code we performed slicing on the data frame to fetch specified rows and columns.

## R

 # create a data frame  stats <- data.frame(player=c('A', 'B', 'C', 'D'),                 runs=c(100, 200, 408, NA),                 wickets=c(17, 20, NA, 5))    print("stats Dataframe") stats    # fetch 2,3 rows and 1,2 columns stats[2:3,c(1,2)]    # fetch 1:3 rows of 1st column cat("players - ") stats[1:3,1]

Output

"stats Dataframe"
player runs wickets
1      A  100      17
2      B  200      20
3      C  408      NA
4      D   NA       5
player runs
2      B  200
3      C  408
players - [1] "A" "B" "C"

### Slicing with logical vectors

We can perform slicing on the data by specifying the logical conditions. It is used to get the filtered data.

Example:

In this example, we fetch the records of players who scored more than 100 runs.

## R

 # create a data frame  stats <- data.frame(player=c('A', 'B', 'C', 'D'),                 runs=c(100, 200, 408, 23),                 wickets=c(17, 20, 3, 5))    print("stats Dataframe") stats    # fetch player details who scores  # more than 100 runs batsmens<-stats[stats\$runs>100,] batsmens

Output

"stats Dataframe"
player runs wickets
1      A  100      17
2      B  200      20
3      C  408       3
4      D   23       5
player runs wickets
2      B  200      20
3      C  408       3

### Slicing with subset()

We can slice data frames using subset() method. The subset method accepts the data, filter logic to slice and the columns to fetch. The syntax of slicing with subset is –

subset( x = dataframe, subset = filter_logic, select=c(columnNames))

Example:

In the below code we fetched the players who picked more than 5 wickets from the data frame stats by slicing the data frame using subset method.

## R

 # create a data frame  stats <- data.frame(player=c('A', 'B', 'C', 'D'),                 runs=c(100, 200, 408, 23),                 wickets=c(17, 20, 3, 5))    print("stats Dataframe") stats    # fetch player details who pick  # more than 5 wickets subset(x=stats, subset=wickets>5, select=c(player,wickets))

Output

"stats Dataframe"
player runs wickets
1      A  100      17
2      B  200      20
3      C  408       3
4      D   23       5
player wickets
1      A      17
2      B      20

My Personal Notes arrow_drop_up
Related Articles