w3resource

R Programming - Convert DataFrame to list by rows


Write a R program to convert a given dataframe to a list by rows.

Sample Solution :

R Programming Code :

# Create a data frame with student exam data
exam_data = data.frame(
  name = c('Anastasia', 'Dima', 'Katherine', 'James', 'Emily', 'Michael', 'Matthew', 'Laura', 'Kevin', 'Jonas'),
  score = c(12.5, 9, 16.5, 12, 9, 20, 14.5, 13.5, 8, 19),
  attempts = c(1, 3, 2, 3, 2, 3, 1, 1, 2, 1),
  qualify = c('yes', 'no', 'yes', 'no', 'no', 'yes', 'yes', 'no', 'no', 'yes')
)

# Print the original data frame
print("Original dataframe:")
print(exam_data)

# Convert each row of the data frame to a separate list element
new_list = split(exam_data, seq(nrow(exam_data)))

# Print the list created from the data frame rows
print("dataframe rows to a list:")
print(new_list)

Output:

[1] "Original dataframe:"
        name score attempts qualify
1  Anastasia  12.5        1     yes
2       Dima   9.0        3      no
3  Katherine  16.5        2     yes
4      James  12.0        3      no
5      Emily   9.0        2      no
6    Michael  20.0        3     yes
7    Matthew  14.5        1     yes
8      Laura  13.5        1      no
9      Kevin   8.0        2      no
10     Jonas  19.0        1     yes
[1] "dataframe rows to a list:"
$`1`
       name score attempts qualify
1 Anastasia  12.5        1     yes

$`2`
  name score attempts qualify
2 Dima     9        3      no

$`3`
       name score attempts qualify
3 Katherine  16.5        2     yes

$`4`
   name score attempts qualify
4 James    12        3      no

$`5`
   name score attempts qualify
5 Emily     9        2      no

$`6`
     name score attempts qualify
6 Michael    20        3     yes

$`7`
     name score attempts qualify
7 Matthew  14.5        1     yes

$`8`
   name score attempts qualify
8 Laura  13.5        1      no

$`9`
   name score attempts qualify
9 Kevin     8        2      no

$`10`
    name score attempts qualify
10 Jonas    19        1     yes                         

Explanation:

  • Create a Data Frame:
    • exam_data = data.frame(...)
      Creates a data frame exam_data with columns for student names, scores, attempts, and qualification status.
  • Print Original Data Frame:
    • print("Original dataframe:")
      Prints a message indicating that the original data frame will be displayed.
    • print(exam_data)
      Displays the contents of the exam_data data frame.
  • Convert Data Frame to List:
    • new_list = split(exam_data, seq(nrow(exam_data)))
      Converts the data frame into a list where each element of the list is a single row of the data frame. The split function splits the data frame into list elements based on row numbers.
  • Print New List:
    • print("dataframe rows to a list:")
      Prints a message indicating that the converted list will be displayed.
    • print(new_list)
      Displays the list where each element represents a row from the original data frame.

R Programming Code Editor:



Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a R program to count number of objects in a given list.
Next: Write a R program to convert a given matrix to a list.

Test your Programming skills with w3resource's quiz.

What is the difficulty level of this exercise?



Follow us on Facebook and Twitter for latest update.