5. You have a list in R: data_list <- list(c(1, 2), c(3, 4), c(5)). You want to create a vector that contains only the even numbers from all sublists. Which code correctly does this using unlist() and vector filtering?
hard
A. even_vec <- unlist(data_list)[unlist(data_list) %% 2 == 0]
B. even_vec <- unlist(data_list[unlist(data_list) %% 2 == 0])
C. even_vec <- unlist(data_list[unlist(data_list) %% 2 != 0])
D. even_vec <- unlist(data_list)[unlist(data_list) %% 2 != 0]
Solution
Step 1: Flatten the list to a vector
Use unlist(data_list) to get all numbers in a single vector: c(1, 2, 3, 4, 5).
Step 2: Filter even numbers from the vector
Use logical indexing with modulo operator: unlist(data_list) %% 2 == 0 to select even numbers.
Final Answer:
even_vec <- unlist(data_list)[unlist(data_list) %% 2 == 0] -> Option A
Quick Check:
Flatten then filter vector for even numbers [OK]
Hint: Flatten list first, then filter vector with modulo [OK]
Common Mistakes:
Filtering before unlisting, causing errors
Using wrong modulo condition for even numbers
Trying to filter list elements directly
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.