Bird
Raised Fist0
R Programmingprogramming~20 mins

String formatting with sprintf in R Programming - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
sprintf Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of sprintf with numeric formatting
What is the output of the following R code using sprintf to format numbers?
R Programming
result <- sprintf("%.2f", 3.14159)
print(result)
A"3.14"
B"3.1416"
C"3.1"
D"3.15"
Attempts:
2 left
💡 Hint
Remember that %.2f rounds the number to 2 decimal places.
❓ Predict Output
intermediate
2:00remaining
String padding with sprintf
What will be the output of this R code that uses sprintf to pad a string?
R Programming
result <- sprintf("%10s", "cat")
print(result)
A"cat"
B"cat "
C" cat "
D" cat"
Attempts:
2 left
💡 Hint
The number 10 means the total width of the string including spaces.
❓ Predict Output
advanced
2:00remaining
Multiple values formatting with sprintf
What is the output of this R code that formats multiple values with sprintf?
R Programming
result <- sprintf("Name: %s, Age: %d, Score: %.1f", "Alice", 30, 95.678)
print(result)
A"Name: Alice, Age: 30, Score: 95"
B"Name: Alice, Age: 30, Score: 95.6"
C"Name: Alice, Age: 30, Score: 95.7"
D"Name: Alice, Age: 30, Score: 95.67"
Attempts:
2 left
💡 Hint
%.1f rounds the number to one decimal place.
❓ Predict Output
advanced
2:00remaining
Using sprintf with hexadecimal formatting
What will this R code print when formatting a number as hexadecimal using sprintf?
R Programming
result <- sprintf("%x", 255)
print(result)
A"FF"
B"ff"
C"255"
D"0xff"
Attempts:
2 left
💡 Hint
%x formats the number as lowercase hexadecimal without prefix.
🧠 Conceptual
expert
3:00remaining
Understanding sprintf format specifiers
Which sprintf format specifier correctly formats a floating-point number with at least 8 characters wide, 3 decimal places, and left-aligned?
A"%-8.3f"
B"%8.3f"
C"%08.3f"
D"%+8.3f"
Attempts:
2 left
💡 Hint
The minus sign (-) left-aligns the output in the field width.

Practice

(1/5)
1. What does the sprintf function in R primarily do?
easy
A. It reads data from a file and stores it in a string.
B. It splits a string into a list of words.
C. It converts strings to uppercase letters.
D. It creates a formatted string by inserting values into placeholders.

Solution

  1. Step 1: Understand the purpose of sprintf

    The sprintf function formats strings by replacing placeholders with values.
  2. Step 2: Compare options with the function's purpose

    Only It creates a formatted string by inserting values into placeholders. describes this behavior correctly; others describe unrelated string operations.
  3. Final Answer:

    It creates a formatted string by inserting values into placeholders. -> Option D
  4. Quick Check:

    sprintf formats strings = B [OK]
Hint: Remember sprintf builds strings by filling placeholders [OK]
Common Mistakes:
  • Confusing sprintf with string splitting functions
  • Thinking sprintf changes case of letters
  • Assuming sprintf reads files
2. Which of the following is the correct syntax to format an integer using sprintf in R?
easy
A. sprintf("%d", 42)
B. sprintf("%s", 42)
C. sprintf("%f", 42)
D. sprintf("%c", 42)

Solution

  1. Step 1: Identify the placeholder for integers

    The placeholder %d is used for integers in sprintf.
  2. Step 2: Match the placeholder with the value type

    Since 42 is an integer, %d is correct; %s is for strings, %f for floats, and %c for characters.
  3. Final Answer:

    sprintf("%d", 42) -> Option A
  4. Quick Check:

    Integer placeholder = %d [OK]
Hint: Use %d for integers, %s for strings, %f for decimals [OK]
Common Mistakes:
  • Using %s for numbers instead of %d
  • Using %f for integers without decimals
  • Confusing %c with integer formatting
3. What is the output of this R code?
sprintf("Name: %s, Age: %d", "Alice", 30)
medium
A. "Name: %s, Age: %d"
B. "Name: Alice, Age: 30"
C. "Name: Alice, Age: %d"
D. "Name: %s, Age: 30"

Solution

  1. Step 1: Match placeholders with arguments

    The first placeholder %s is replaced by "Alice" (string), the second %d by 30 (integer).
  2. Step 2: Construct the final string

    Replacing placeholders gives "Name: Alice, Age: 30" as the output string.
  3. Final Answer:

    "Name: Alice, Age: 30" -> Option B
  4. Quick Check:

    Placeholders replaced correctly = A [OK]
Hint: Placeholders %s and %d replaced by arguments in order [OK]
Common Mistakes:
  • Not replacing placeholders with values
  • Mixing up %s and %d placeholders
  • Outputting the format string literally
4. Identify the error in this R code:
sprintf("Value: %d", "ten")
medium
A. Incorrect use of double quotes around the format string.
B. Missing closing parenthesis in sprintf function.
C. Using %d placeholder with a string causes a type mismatch error.
D. No error; code runs correctly.

Solution

  1. Step 1: Check placeholder and argument types

    The placeholder %d expects an integer, but "ten" cannot be coerced to a number, resulting in NA and a warning.
  2. Step 2: Determine if it causes an error

    The code runs but produces a warning and outputs "Value: NA"; this is a type mismatch issue.
  3. Final Answer:

    Using %d placeholder with a string causes a type mismatch error. -> Option C
  4. Quick Check:

    Type mismatch warning occurs = A [OK]
Hint: sprintf coerces types, may produce NA and warning [OK]
Common Mistakes:
  • Confusing coercion warning with type mismatch error
  • Looking for missing parenthesis (it's present)
  • Assuming invalid quotes (they're correct)
5. You want to format a floating-point number with exactly 2 decimal places using sprintf. Which code snippet achieves this?
hard
A. sprintf("%.2f", 3.14159)
B. sprintf("%2f", 3.14159)
C. sprintf("%f.2", 3.14159)
D. sprintf("%f", round(3.14159, 2))

Solution

  1. Step 1: Understand the format for decimal precision

    The format %.2f tells sprintf to print a float with 2 digits after the decimal point.
  2. Step 2: Compare options for correct syntax

    sprintf("%.2f", 3.14159) uses %.2f, which is correct. sprintf("%2f", 3.14159) misses the dot, A has incorrect syntax, and D rounds before formatting but does not guarantee 2 decimals in output.
  3. Final Answer:

    sprintf("%.2f", 3.14159) -> Option A
  4. Quick Check:

    Use %.2f for 2 decimals [OK]
Hint: Use %.2f to fix two decimal places in sprintf [OK]
Common Mistakes:
  • Omitting the dot before precision number
  • Using round() but forgetting format specifier
  • Incorrect order of precision and type specifier
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