DataFrame Row Slice in R
Last Updated :
27 Jun, 2022
In this article, we are going to see how to Slice row in Dataframe using R Programming Language.
Row slicing in R is a way to access the data frame rows and further use them for operations or methods. The rows can be accessed in any possible order and stored in other vectors or matrices as well. Row slicing is an important operation which is easily supported by R programming language.
There are various ways to slice data frame rows in R :
- Using Numeric Indexing
- Using Name Indexing
- Indexing using logical vectors
Method 1. Using Numeric Indexing
Numeric indexing in R can be used to access a single or multiple rows from the data frame. The rows to be accessed can be specified in the square brackets using row indices of the data frame.
dataframe[i,] where i is the row number of the data frame
R
data_frame = data.frame (col1 = c (1:15),
col2 = letters [1:15],
col3 = c (0,1,1,1,0,0,0,0,
0,1,1,0,1,1,0))
print ( "Data Frame" )
print (data_frame)
data_frame4 <- data_frame[4,]
print ( "Row 4 of data frame" )
print (data_frame4)
|
Output
[1] "Data Frame"
col1 col2 col3
1 1 a 0
2 2 b 1
3 3 c 1
4 4 d 1
5 5 e 0
6 6 f 0
7 7 g 0
8 8 h 0
9 9 i 0
10 10 j 1
11 11 k 1
12 12 l 0
13 13 m 1
14 14 n 1
15 15 o 0
[1] "Row 4 of data frame"
col1 col2 col3
4 4 d 1
Multiple rows of the data frame can also be accessed in the data frame by specifying the row number in the vector and them using them in the square brackets.
R
data_frame = data.frame (col1 = c (1:15),
col2 = letters [1:15],
col3 = c (0,1,1,1,0,0,0,
0,0,1,1,0,1,1,0))
print ( "Data Frame" )
print (data_frame)
row_vec <- c (1,3,5)
data_frame_mul <- data_frame[row_vec,]
print ( "Multiple rows of data frame" )
print (data_frame_mul)
|
Output
[1] "Data Frame"
col1 col2 col3
1 1 a 0
2 2 b 1
3 3 c 1
4 4 d 1
5 5 e 0
6 6 f 0
7 7 g 0
8 8 h 0
9 9 i 0
10 10 j 1
11 11 k 1
12 12 l 0
13 13 m 1
14 14 n 1
15 15 o 0
[1] "Multiple rows of data frame"
col1 col2 col3
1 1 a 0
3 3 c 1
5 5 e 0
Method 2. Using Name Indexing
Data frame rows can also be accessed by specifying the names of the rows used for their identification.
R
data_frame = data.frame (col1 = c (1:8),
col2 = letters [1:8],
col3 = c (0,1,1,1,0,0,0,0))
rownames (data_frame) <- c ( "r1" , "r2" , "r3" , "r4" ,
"r5" , "r6" , "r7" , "r8" )
print ( "Data Frame" )
print (data_frame)
data_frame_3 = data_frame[ "r3" ,]
print ( "DataFrame row 3" )
print (data_frame_3)
|
Output
[1] "Data Frame"
col1 col2 col3
r1 1 a 0
r2 2 b 1
r3 3 c 1
r4 4 d 1
r5 5 e 0
r6 6 f 0
r7 7 g 0
r8 8 h 0
[1] "DataFrame row 3"
col1 col2 col3
r3 3 c 1
Method 3. Indexing using logical vectors
Data frame rows can also be subjected to a logical expression, where in the row indexes evaluating to true of the logical expression will be returned in the resulting output.
R
data_frame = data.frame (col1 = c (1:8),
col2 = letters [1:8],
col3 = c (0,1,1,1,0,0,0,0))
rownames (data_frame) <- c ( "r1" , "r2" , "r3" , "r4" , "r5" , "r6" )
print ( "Data Frame" )
print (data_frame)
log_vec = data_frame$col3 == 0
print ( "Dataframe where col3 values are equivalent to 0" )
print (data_frame[log_vec,])
|
Output
[1] "Data Frame"
col1 col2 col3
1 1 a 0
2 2 b 1
3 3 c 1
4 4 d 1
5 5 e 0
6 6 f 0
7 7 g 0
8 8 h 0
[1] "Dataframe where row 1 values are %2 "
col1 col2 col3
1 1 a 0
5 5 e 0
6 6 f 0
7 7 g 0
8 8 h 0
Share your thoughts in the comments
Please Login to comment...