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.
Go to:
PREV : 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.
R Programming Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Test your Programming skills with w3resource's quiz.
What is the difficulty level of this exercise?
