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?
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics