Indexing and Slicing Data Frames in R
In this article let’s discuss about indexing and slicing the Data Frames in R.
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
Please Login to comment...