Indexing in R starts at 1, which means the first element is at index 1. In R indexing data frame can be achieved using the brackets notation to access the elements. Data frame is like a two-dimensional array or table where rows are the observations and the columns are the variable.
If you want to access the element of the 2nd row and 1 column, use [2,1] indexing in the data frame to access the value of the element.
In this tutorial, we will discuss indexing in data frames, indexing with name, boolean indexing into a data frame in R.
Indexing into Data Frames in R
Using the square bracket notation, you can access the element, or data can be extracted from the data frame.
Let’s practice with an example to understand how indexing data frames in R works.
Create a data frame using data.frame() function.
# Create a data frame
student_info <- data.frame(
name = c("Tom","Kim","Sam","Julie","Emily","Chris"),
age = c(20,21,19,20,21,22),
gender = c('M','F','M','F','F','M'),
marks = c(72,77,65,80,85,87)
)
# Print data frame
student_info
The output of the above data frame is:
name age gender marks
1 Tom 20 M 72
2 Kim 21 F 77
3 Sam 19 M 65
4 Julie 20 F 80
5 Emily 21 F 85
6 Chris 22 M 87
Get an element at row 2 and column 4,
student_info[2,4]
It returns the marks scored by the Kim student.
[1] 77
Get an element at row 3 and column name as age
student_info[3,"age"]
19
Get the first two rows and all columns of data
student_info[1:2,]
name age gender marks
1 Tom 20 M 72
2 Kim 21 F 77
Get the first three rows with specific columns as name, marks
student_info[1:3,c("name","marks")]
name marks
1 Tom 72
2 Kim 77
3 Sam 65
Indexing with Boolean in Data Frame
Let’s consider the above data frame to indexing into boolean for the data frame.
Get the boolean vector for students who scores greater than 80 marks.
student_info$marks > 80
The output of the above R code is a boolean vector having either TRUE or FALSE value.
The output result shows that the last two students in the data frame have scored more than 80 marks.
[1] FALSE FALSE FALSE FALSE TRUE TRUE
Get resultant data frame for the students who have scored more than 80 marks.
student_info[student_info$marks >80,]
The output of the above R code is:
name age gender marks
5 Emily 21 F 85
6 Chris 22 M 87
Conclusion
I hope the above article on R indexing into the data frame is helpful to you.
Use square bracket notation to get an element from the data frame. You can extract the data from the data frame using the column name in indexing into the data frame.