📖 Scenario: You work in a small bakery that keeps a list of customer orders as single strings. Each order lists items separated by commas. You want to split these strings into individual items to better understand what customers want.
🎯 Goal: Learn how to use the strsplit function in R to split strings into parts based on a separator.
📋 What You'll Learn
Create a character vector with exact order strings
Create a separator variable with the exact comma character
Use strsplit with the vector and separator
Print the resulting list of split items
💡 Why This Matters
🌍 Real World
Splitting strings is useful when processing text data like customer orders, CSV files, or logs where data is combined in one string.
💼 Career
Many data jobs require cleaning and splitting text data to analyze or transform it for reports, databases, or machine learning.
Progress0 / 4 steps
1
Create the orders vector
Create a character vector called orders with these exact strings: "bread,butter,jam", "cake,coffee", and "tea,cookie".
R Programming
Hint
Use the c() function to create a vector of strings.
2
Create the separator variable
Create a variable called separator and set it to the exact string "," (a comma).
R Programming
Hint
Remember to put the comma inside quotes to make it a string.
3
Split the orders using strsplit
Use strsplit with orders and separator to create a new variable called split_orders.
R Programming
Hint
Use strsplit(orders, separator) and assign it to split_orders.
4
Print the split orders
Print the variable split_orders to see the list of split items.
R Programming
Hint
Use print(split_orders) to display the result.
Practice
(1/5)
1. What does the strsplit function in R do?
easy
A. It joins multiple strings into one string.
B. It counts the number of characters in a string.
C. It converts a string to uppercase letters.
D. It breaks a string into parts based on a separator.
Solution
Step 1: Understand the purpose of strsplit
The strsplit function is designed to split a string into smaller parts using a specified separator.
Step 2: Compare options with function behavior
Only It breaks a string into parts based on a separator. correctly describes this behavior. Options A, C, and D describe different string functions.
Final Answer:
It breaks a string into parts based on a separator. -> Option D
Quick Check:
strsplit splits strings = B [OK]
Hint: Remember: strsplit splits strings by separator [OK]
Common Mistakes:
Confusing strsplit with paste or toupper functions
Thinking strsplit counts characters
Assuming strsplit joins strings
2. Which of the following is the correct syntax to split the string "apple,banana,orange" by commas using strsplit?
easy
A. strsplit("apple,banana,orange", " ")
B. strsplit("apple,banana,orange", ".")
C. strsplit("apple,banana,orange", ",")
D. strsplit("apple,banana,orange")
Solution
Step 1: Identify the separator in the string
The string uses commas "," to separate words.
Step 2: Match the separator in strsplit syntax
strsplit("apple,banana,orange", ",") uses "," as the separator, which is correct. strsplit("apple,banana,orange", ".") uses ".", C uses space, and D misses the separator argument.
Final Answer:
strsplit("apple,banana,orange", ",") -> Option C
Quick Check:
Separator matches comma = A [OK]
Hint: Use the exact separator character inside quotes [OK]
Common Mistakes:
Forgetting to provide the separator argument
Using wrong separator character
Using unquoted separator
3. What is the output of the following R code?
result <- strsplit("one-two-three", "-")
print(result)
medium
A. [[1]] "one" "two" "three"
B. "one-two-three"
C. [1] "one" "two" "three"
D. Error: invalid separator
Solution
Step 1: Understand strsplit output type
strsplit returns a list where each element is a character vector of split parts.
Step 2: Analyze the printed output
The print shows a list with one element ([[1]]) containing the split strings "one", "two", "three".
Final Answer:
[[1]] "one" "two" "three" -> Option A
Quick Check:
strsplit returns list of vectors = A [OK]
Hint: Remember strsplit returns a list, not a vector directly [OK]
Common Mistakes:
Expecting a simple vector instead of a list
Confusing output with a single string
Thinking strsplit throws an error for valid separator
4. Identify the error in this R code:
strsplit("cat,dog,bird", ",")[[2]]
medium
A. The string should be a vector, not a single string.
B. Index [[2]] is out of bounds because strsplit returns a list of length 1.
C. Missing parentheses around strsplit call.
D. Separator "," is incorrect for splitting.
Solution
Step 1: Check the output structure of strsplit
strsplit returns a list with one element per input string. Here, input is one string, so list length is 1.
Step 2: Analyze the indexing [[2]]
Trying to access [[2]] causes an out-of-bounds error because the list has only one element.
Final Answer:
Index [[2]] is out of bounds because strsplit returns a list of length 1. -> Option B
Quick Check:
List length 1, index 2 invalid = D [OK]
Hint: Check list length before using [[index]] [OK]
Common Mistakes:
Assuming strsplit returns multiple list elements for one string
Using wrong separator
Misunderstanding list indexing
5. You have a vector of strings: c("red:blue", "green:yellow", "black:white"). How do you split each string by ":" and get a flat vector of all colors?
hard
A. unlist(strsplit(c("red:blue", "green:yellow", "black:white"), ":"))
B. strsplit(c("red:blue", "green:yellow", "black:white"), ":")
C. paste(strsplit(c("red:blue", "green:yellow", "black:white"), ":"))
D. split(c("red:blue", "green:yellow", "black:white"), ":")
Solution
Step 1: Use strsplit to split each string by ":"
strsplit returns a list of character vectors for each element in the input vector.
Step 2: Flatten the list to a single vector
Using unlist converts the list of vectors into one flat character vector containing all colors.
Final Answer:
unlist(strsplit(c("red:blue", "green:yellow", "black:white"), ":")) -> Option A
Quick Check:
Use unlist to flatten strsplit output = C [OK]
Hint: Use unlist() to flatten strsplit list output [OK]
Common Mistakes:
Forgetting to unlist and getting a list instead of vector
Using paste which concatenates instead of splitting
Using split which is for factors, not strings
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.