R Program to convert a given data frame to a list by rows

How to convert a given data frame to a list by rows

Here we are explaining how to write an R program to convert a given data frame to a list by rows. Here we are using a built-in function data.frame(). A data frame is used for storing data tables which has a list of vectors with equal length. The data frames are created by function data.frame(), which has tightly coupled collections of variables. The syntax of this function is,

data.frame(…, row.names = NULL, check.rows = FALSE,check.names = TRUE, fix.empty.names = TRUE,stringsAsFactors = default.stringsAsFactors())

How to convert a given data frame to a list by rows in the R program

Below are the steps used in the R program to convert a given data frame to a list by rows. In this R program, we directly give the data frame to a built-in function. Here we are using variables E, N, S, A, Q for holding different types of vectors. Call the function data.frame() for creating data frame. Finally, Convert the data frame into list L by calling split(E, seq(nrow(E))). Here split() helps to divide the vector or data frame containing values into groups. And seq() method helps to generate regular sequences.

ALGORITHM

  • STEP 1: Assign variables E,N,S,A,Q with vector values
  • STEP 2: Create a data frame E with given values
  • STEP 3: Print the data frame
  • STEP 4: Convert the data frame into list L by calling split(E, seq(nrow(E)))
  • STEP 5: Print the new list L

R Source Code

E = data.frame(
                N = c('Jhon', 'Hialy', 'Albert', 'James', 'Delma'),
                S = c(10, 9.5, 12.2, 11, 8),
                A = c(2, 1, 2, 4, 1),
                Q = c('yes', 'no', 'yes', 'no', 'no')
              )

print("Original dataframe:")
## [1] "Original dataframe:"
print(E)
##        N    S A   Q
## 1   Jhon 10.0 2 yes
## 2  Hialy  9.5 1  no
## 3 Albert 12.2 2 yes
## 4  James 11.0 4  no
## 5  Delma  8.0 1  no
L = split(E, seq(nrow(E)))

print("dataframe rows to a list:")
## [1] "dataframe rows to a list:"
print(L)
## $`1`
##      N  S A   Q
## 1 Jhon 10 2 yes
## 
## $`2`
##       N   S A  Q
## 2 Hialy 9.5 1 no
## 
## $`3`
##        N    S A   Q
## 3 Albert 12.2 2 yes
## 
## $`4`
##       N  S A  Q
## 4 James 11 4 no
## 
## $`5`
##       N S A  Q
## 5 Delma 8 1 no