📖 Scenario: Imagine you are organizing a small library. Each shelf holds a list of books, and each book has a title and an author. You want to store this information in a nested list in R.
🎯 Goal: Create a nested list in R where each shelf is a list of books, and each book is represented by a list containing its title and author. Then, extract and print the title of the first book on the second shelf.
📋 What You'll Learn
Create a nested list called library with two shelves.
Each shelf should be a list of two books.
Each book should be a list with elements title and author.
Create a variable called first_book_second_shelf to store the title of the first book on the second shelf.
Print the value of first_book_second_shelf.
💡 Why This Matters
🌍 Real World
Nested lists help organize complex data like library catalogs, menus, or survey responses.
💼 Career
Understanding nested data structures is important for data analysis, software development, and managing hierarchical information.
Progress0 / 4 steps
1
Create the nested list library
Create a nested list called library with two shelves. Each shelf should be a list of two books. Each book should be a list with elements title and author. Use these exact values:
First shelf: - Book 1: title = "The Hobbit", author = "J.R.R. Tolkien" - Book 2: title = "1984", author = "George Orwell"
Second shelf: - Book 1: title = "Pride and Prejudice", author = "Jane Austen" - Book 2: title = "To Kill a Mockingbird", author = "Harper Lee"
R Programming
Hint
Use list() to create lists inside lists. Each shelf is a list of two book lists.
2
Create variable first_book_second_shelf
Create a variable called first_book_second_shelf and assign it the title of the first book on the second shelf from the library nested list.
R Programming
Hint
Use $ and double square brackets [[ ]] to access nested list elements.
3
Print the title stored in first_book_second_shelf
Write a print() statement to display the value of the variable first_book_second_shelf.
R Programming
Hint
Use print() to show the value stored in a variable.
4
Final Output Check
Run the program to print the title of the first book on the second shelf.
R Programming
Hint
The output should be the title of the first book on the second shelf.
Practice
(1/5)
1. What is a nested list in R?
easy
A. A list with only numeric elements
B. A list that contains other lists as elements
C. A vector with mixed data types
D. A matrix with rows and columns
Solution
Step 1: Understand list structure in R
Lists in R can hold different types of elements, including other lists.
Step 2: Define nested list
A nested list is a list where some elements are themselves lists, allowing complex data grouping.
Final Answer:
A list that contains other lists as elements -> Option B
Quick Check:
Nested list = list inside list [OK]
Hint: Nested lists hold lists inside lists for complex data [OK]
Common Mistakes:
Confusing nested lists with vectors
Thinking nested lists must be numeric
Mixing up matrices and lists
2. Which of the following is the correct way to create a nested list in R?
easy
A. nested <- list(a = 1, b = list(c = 2, d = 3))
B. nested <- c(a = 1, b = c(c = 2, d = 3))
C. nested <- matrix(c(1, 2, 3, 4), nrow=2)
D. nested <- data.frame(a = 1, b = 2)
Solution
Step 1: Identify list creation syntax
Use list() to create lists; nested lists are lists inside list() calls.
Step 2: Check each option
nested <- list(a = 1, b = list(c = 2, d = 3)) uses list() with a nested list inside, which is correct syntax for nested lists.
Final Answer:
nested <- list(a = 1, b = list(c = 2, d = 3)) -> Option A
Quick Check:
list() with list() inside = nested list [OK]
Hint: Use list() inside list() to nest lists [OK]
Common Mistakes:
Using c() instead of list() for nested lists
Confusing data.frame or matrix with lists
Missing nested list syntax
3. What is the output of the following R code?
nested <- list(x = 10, y = list(a = 5, b = 15))
nested$y$a
medium
A. 10
B. NULL
C. 15
D. 5
Solution
Step 1: Understand list structure
nested is a list with element y, which is itself a list containing a=5 and b=15.
Step 2: Access nested element
nested$y$a accesses element 'a' inside the nested list 'y', which is 5.
Final Answer:
5 -> Option D
Quick Check:
nested$y$a = 5 [OK]
Hint: Use $ to access nested list elements stepwise [OK]
Common Mistakes:
Accessing nested elements with single brackets
Confusing element names
Expecting the outer element value
4. Identify the error in this R code for nested lists:
nested <- list(a = 1, b = list(c = 2, d = 3))
value <- nested$b[c]
medium
A. Missing assignment operator <-
B. Incorrect list creation syntax
C. Using single brackets instead of double brackets to access list element
D. Using $ instead of [[ ]] to access nested list
Solution
Step 1: Understand list element access
To access a single element by name in a list, use double brackets [[ ]] or $; single brackets [ ] return a sublist.
Step 2: Analyze the code
nested$b[c] uses single brackets with a character index, which returns a sublist, not the element value.
Final Answer:
Using single brackets instead of double brackets to access list element -> Option C
Quick Check:
Use [[ ]] or $ for single element access [OK]
Hint: Use [[ ]] or $ to get single list elements, not [ ] [OK]
Common Mistakes:
Using [ ] returns sublist, not element
Confusing list and vector indexing
Forgetting to use quotes for names
5. Given a nested list data <- list(group1 = list(scores = c(10, 20)), group2 = list(scores = c(15, 25))), how do you create a new list with the average score of each group?
hard
A. averages <- list(group1 = mean(data$group1$scores), group2 = mean(data$group2$scores))
B. averages <- list(group1 = sum(data$group1$scores), group2 = sum(data$group2$scores))
C. averages <- list(group1 = data$group1$scores[1], group2 = data$group2$scores[1])
D. averages <- list(group1 = length(data$group1$scores), group2 = length(data$group2$scores))
Solution
Step 1: Access nested scores vectors
Use data$group1$scores and data$group2$scores to get numeric vectors for each group.
Step 2: Calculate mean for each group
Apply mean() function to each scores vector to get average scores.
Step 3: Create new list with averages
Assign the calculated means to a new list with same group names.