Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Select Odd and Even Rows and Columns from DataFrame in R

  • Last Updated : 23 Sep, 2021

In this article, we will discuss how to select odd and even rows from a dataframe in R programming language.

Getting Odd Rows from the Data Frame

The number of rows in a data frame in R can be fetched by the nrow() method. It returns the number of rows in the data frame. The seq_len() method is then applied to generate the integers beginning with 1 to the number of rows. The modulo method with the integer 2 in R can be used to fetch the odd or even rows based on their indexes on the obtained vector. The corresponding row indices of the data frame are operated with a modulo method. The following syntax is used to fetch the odd rows of the data frame.

Syntax:

seq_len(rows)%%2

Data frame indexing method can then be used to obtain rows where the odd row index is equivalent to 1.



Syntax:

data_frame[odd_row == 1, ]

Example: Select odd rows from dataframe

R




# creating a data frame in R
data_frame <- data.frame(col1 = 1:10,
                         col2 = letters[1:10],
                         col3 = rep(5:9,2))
  
print ("Original Dataframe")
print(data_frame)
  
# getting number of rows in R
rows <- nrow(data_frame)
  
# extracting odd rows 
odd_rows <- seq_len(rows) %% 2
  
# getting data from odd data frame
data_mod <- data_frame[odd_rows == 1, ]
  
print ("odd rows of dataframe")
print(data_mod)

Output:

[1] "Original Dataframe"
   col1 col2 col3
1     1    a    5
2     2    b    6
3     3    c    7
4     4    d    8
5     5    e    9
6     6    f    5
7     7    g    6
8     8    h    7
9     9    i    8
10   10    j    9
[1] "odd rows of dataframe"
  col1 col2 col3
1    1    a    5
3    3    c    7
5    5    e    9
7    7    g    6
9    9    i    8

Getting Even Rows from the Data Frame

The number of rows in a data frame in R can be fetched by the nrow() method. It returns the number of rows in the data frame. The seq_len() method is then applied to generate the integers beginning with 1 to the number of rows. The modulo method with the integer 2 in R can be used to fetch the odd or even rows based on their indexes on the obtained vector. The corresponding row indices of the data frame are operated with a modulo method. The following syntax is used to fetch the odd rows of the data frame.

Syntax:

seq_len(rows)%%2



Data frame indexing method can then be used to obtain rows where the even row index is equivalent to 0.

Syntax:

data_frame[odd_row == 0, ]

Example: Select even rows from dataframe

R




# creating a data frame in R
data_frame <- data.frame(col1 = 1:10,
                         col2 = letters[1:10],
                         col3 = rep(5:9,2))
  
print ("Original Dataframe")
print(data_frame)
  
# getting number of rows in R
rows <- nrow(data_frame)
  
# extracting odd rows 
even_rows <- seq_len(rows) %% 2
  
# getting data from odd data frame
data_mod <- data_frame[even_rows == 0, ]
  
print ("even rows of dataframe")
print(data_mod)

Output:

[1] "Original Dataframe"
   col1 col2 col3
1     1    a    5
2     2    b    6
3     3    c    7
4     4    d    8
5     5    e    9
6     6    f    5
7     7    g    6
8     8    h    7
9     9    i    8
10   10    j    9
[1] "even rows of dataframe"
> print(data_mod)
   col1 col2 col3
2     2    b    6
4     4    d    8
6     6    f    5
8     8    h    7
10   10    j    9

Getting Odd Columns from the Data Frame

The number of columns in a data frame in R can be fetched by the ncol() method. It returns the number of columns in the data frame. The modulo method can then be used with the integer 2 in R can be used to fetch the odd or even columns based on their indexes on the obtained vector. The corresponding column indices of the data frame are operated with a modulo method. The following syntax is used to fetch the odd rows of the data frame.

Syntax:

seq_len(cols)%%2

Data frame indexing method can then be used to obtain rows where the odd column index is equivalent to 1.



Syntax:

Data_frame[, odd_cols==1 ]

Example: select odd columns from dataframe

R




# creating a data frame in R
data_frame <- data.frame(col1 = 1:10,
                         col2 = letters[1:10],
                         col3 = rep(5:9,2))
  
print ("Original Dataframe")
print(data_frame)
  
# getting number of columns in R
cols <- ncol(data_frame)
  
# extracting odd rows 
odd_cols <- seq_len(cols) %% 2
  
# getting data from odd data frame
data_mod <- data_frame[, odd_cols == 1]
  
print ("odd columns of dataframe")
print(data_mod)

Output:

[1] "Original Dataframe"
   col1 col2 col3
1     1    a    5
2     2    b    6
3     3    c    7
4     4    d    8
5     5    e    9
6     6    f    5
7     7    g    6
8     8    h    7
9     9    i    8
10   10    j    9
[1] "odd rows of dataframe"
   col1 col3
1     1    5
2     2    6
3     3    7
4     4    8
5     5    9
6     6    5
7     7    6
8     8    7
9     9    8
10   10    9

Getting Even Columns from the Data Frame

The number of columns in a data frame in R can be fetched by the ncol() method. It returns the number of columns in the data frame. The modulo method can then be used with the integer 2 in R can be used to fetch the odd or even columns based on their indexes on the obtained vector. The corresponding column indices of the data frame are operated with a modulo method. The following syntax is used to fetch the odd rows of the data frame.

Syntax:

seq_len(cols)%%2

Data frame indexing method can then be used to obtain rows where the odd column index is equivalent to 0.

Syntax:

Data_frame[, odd_cols==0 ]

Example: select even columns from dataframe

R




# creating a data frame in R
data_frame <- data.frame(col1 = 1:10,
                         col2 = letters[1:10],
                         col3 = rep(5:9,2))
  
print ("Original Dataframe")
print(data_frame)
  
# getting number of columns in R
cols <- ncol(data_frame)
  
# extracting odd rows 
even_cols <- seq_len(cols) %% 2
  
# getting data from odd data frame
data_mod <- data_frame[, even_cols == 0]
  
print ("even columns of dataframe")
print(data_mod)

Output:

[1] "Original Dataframe"
   col1 col2 col3
1     1    a    5
2     2    b    6
3     3    c    7
4     4    d    8
5     5    e    9
6     6    f    5
7     7    g    6
8     8    h    7
9     9    i    8
10   10    j    9
[1] "even columns of dataframe"
 [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j"



My Personal Notes arrow_drop_up
Recommended Articles
Page :