Bird
Raised Fist0
R Programmingprogramming~5 mins

sub and gsub in R Programming - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the sub() function do in R?

sub() replaces the first occurrence of a pattern in a string with a replacement.

Click to reveal answer
beginner
How is gsub() different from sub()?

gsub() replaces all occurrences of a pattern in a string, while sub() replaces only the first.

Click to reveal answer
beginner
Example: What is the output of sub("a", "X", "banana")?

The output is "bXnana" because only the first 'a' is replaced by 'X'.

Click to reveal answer
beginner
Example: What is the output of gsub("a", "X", "banana")?

The output is "bXnXnX" because all 'a's are replaced by 'X'.

Click to reveal answer
intermediate
Can sub() and gsub() work with regular expressions?

Yes, both functions use regular expressions to find patterns in strings for replacement.

Click to reveal answer
What does sub("cat", "dog", "catapult") return?
A"dogapult"
B"catapult"
C"dogdog"
D"catdog"
Which function replaces all matches of a pattern in a string?
Asub()
Bgsub()
Cpaste()
Dstrsplit()
What will gsub("[aeiou]", "*", "hello world") output?
A"h*ll* w*rld"
B"hello world"
C"h*llo world"
D"*e*o *o*l*"
If you want to replace only the first space in a string, which function do you use?
Agsub()
Bstr_replace_all()
Csub()
Dpaste()
What is the role of regular expressions in sub() and gsub()?
AThey convert strings to numbers
BThey replace the string directly
CThey split the string
DThey define the pattern to find in the string
Explain the difference between sub() and gsub() in R.
Think about how many replacements each function makes.
You got /3 concepts.
    Describe a real-life example where you would use gsub() instead of sub().
    Imagine editing a whole paragraph, not just one word.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main difference between sub and gsub in R?
      easy
      A. sub works only with numbers, gsub works only with text.
      B. sub replaces all matches, gsub replaces only the first match.
      C. sub replaces only the first match, gsub replaces all matches.
      D. sub modifies the original string, gsub returns a new string.

      Solution

      1. Step 1: Understand sub behavior

        sub replaces only the first occurrence of the pattern in the string.
      2. Step 2: Understand gsub behavior

        gsub replaces all occurrences of the pattern in the string.
      3. Final Answer:

        sub replaces only the first match, gsub replaces all matches. -> Option C
      4. Quick Check:

        sub = first match, gsub = all matches [OK]
      Hint: Remember: sub = first, gsub = global (all) [OK]
      Common Mistakes:
      • Confusing which function replaces all matches
      • Thinking sub modifies original string in place
      • Assuming gsub only replaces first match
      2. Which of the following is the correct syntax to replace the first occurrence of "cat" with "dog" in the string "cat and cat" using sub?
      easy
      A. sub("cat", "dog", "cat and cat")
      B. sub("dog", "cat", "cat and cat")
      C. gsub("cat", "dog", "cat and cat")
      D. replace("cat", "dog", "cat and cat")

      Solution

      1. Step 1: Identify correct function and parameters

        sub takes pattern, replacement, and the string in that order.
      2. Step 2: Check the parameters match the question

        We want to replace "cat" with "dog" in "cat and cat" using sub.
      3. Final Answer:

        sub("cat", "dog", "cat and cat") -> Option A
      4. Quick Check:

        Correct syntax with sub and parameters [OK]
      Hint: sub(pattern, replacement, string) is the order [OK]
      Common Mistakes:
      • Swapping pattern and replacement arguments
      • Using gsub instead of sub for first occurrence
      • Using a non-existent function like replace
      3. What will be the output of the following R code?
      text <- "apple apple apple"
      result <- sub("apple", "orange", text)
      print(result)
      medium
      A. "orange orange orange"
      B. "orange apple apple"
      C. "apple orange apple"
      D. "apple apple orange"

      Solution

      1. Step 1: Understand sub replaces first match only

        The first "apple" in the string is replaced by "orange".
      2. Step 2: Apply replacement to the string

        Result becomes "orange apple apple" because only the first "apple" changes.
      3. Final Answer:

        "orange apple apple" -> Option B
      4. Quick Check:

        sub replaces first match only [OK]
      Hint: sub changes only first match, not all [OK]
      Common Mistakes:
      • Thinking sub replaces all matches
      • Confusing sub with gsub
      • Expecting all words to change
      4. The following code is intended to replace all spaces with underscores in the string "hello world example" but does not work as expected. What is the error?
      text <- "hello world example"
      new_text <- sub(" ", "_", text)
      print(new_text)
      medium
      A. The print statement is incorrect syntax.
      B. The pattern " " is invalid, use "\\s" instead.
      C. The replacement string should be "-" not "_".
      D. sub replaces only the first space, use gsub to replace all spaces.

      Solution

      1. Step 1: Identify function behavior

        sub replaces only the first match, so only the first space is replaced.
      2. Step 2: Suggest correct function for all replacements

        To replace all spaces, gsub should be used instead of sub.
      3. Final Answer:

        sub replaces only the first space, use gsub to replace all spaces. -> Option D
      4. Quick Check:

        Use gsub for all matches, sub for first only [OK]
      Hint: Use gsub to replace all matches, not sub [OK]
      Common Mistakes:
      • Using sub when gsub is needed
      • Thinking space pattern is invalid
      • Changing replacement character unnecessarily
      5. You have a vector of strings: c("cat123", "dog456", "bird789"). You want to remove all digits from each string. Which R code correctly does this using gsub?
      hard
      A. gsub("[0-9]", "", c("cat123", "dog456", "bird789"))
      B. sub("[0-9]", "", c("cat123", "dog456", "bird789"))
      C. gsub("[^0-9]+", "", c("cat123", "dog456", "bird789"))
      D. sub("\\d", "", c("cat123", "dog456", "bird789"))

      Solution

      1. Step 1: Identify pattern to remove digits

        The pattern "[0-9]" matches any single digit; "\\d+" matches one or more digits.
      2. Step 2: Choose function to replace all digits

        Use gsub to replace all digit occurrences, not just the first.
      3. Step 3: Check options

        gsub("[0-9]", "", c("cat123", "dog456", "bird789")) uses gsub with "[0-9]" which removes all digits correctly.
      4. Final Answer:

        gsub("[0-9]", "", c("cat123", "dog456", "bird789")) -> Option A
      5. Quick Check:

        gsub + digit pattern removes all digits [OK]
      Hint: Use gsub with digit pattern to remove all digits [OK]
      Common Mistakes:
      • Using sub instead of gsub, removing only first digit
      • Incorrect regex pattern for digits
      • Confusing escape sequences in regex
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard