Bird
Raised Fist0
R Programmingprogramming~5 mins

Numeric and character vectors in R Programming - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Numeric and character vectors
O(n)
Understanding Time Complexity

When working with numeric and character vectors in R, it is important to understand how the time to process them grows as their size increases.

We want to know how the number of steps changes when we do operations on these vectors.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


# Create numeric vector
num_vec <- 1:1000

# Create character vector
char_vec <- as.character(num_vec)

# Convert numeric vector to character vector
result <- as.character(num_vec)

# Concatenate two character vectors
combined <- c(char_vec, result)
    

This code creates numeric and character vectors, converts numeric to character, and combines two character vectors.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Converting each element of the numeric vector to a character string.
  • How many times: Once for each element in the vector (n times).
  • Secondary operation: Concatenating two character vectors, which involves copying elements.
  • How many times: Proportional to the total length of both vectors (about 2n elements copied).
How Execution Grows With Input

As the vector size grows, the number of operations grows roughly in direct proportion.

Input Size (n)Approx. Operations
10About 10 conversions + 20 concatenations
100About 100 conversions + 200 concatenations
1000About 1000 conversions + 2000 concatenations

Pattern observation: The total steps increase roughly in a straight line as input size grows.

Final Time Complexity

Time Complexity: O(n)

This means the time to run the code grows directly with the size of the vectors.

Common Mistake

[X] Wrong: "Converting or combining vectors takes the same time no matter how big they are."

[OK] Correct: Each element must be processed, so bigger vectors take more time.

Interview Connect

Understanding how vector operations scale helps you write efficient R code and explain your reasoning clearly in interviews.

Self-Check

"What if we used a list instead of a vector? How would the time complexity change?"

Practice

(1/5)
1. Which of the following correctly creates a numeric vector in R?
easy
A. c(TRUE, FALSE, TRUE)
B. c("one", "two", "three")
C. c(1, "two", 3)
D. c(1, 2, 3, 4)

Solution

  1. Step 1: Understand numeric vector creation

    Numeric vectors contain only numbers, so elements must be numeric values.
  2. Step 2: Check each option's elements

    c(1, 2, 3, 4) has only numbers, so it is a numeric vector. c("one", "two", "three") has text, c(TRUE, FALSE, TRUE) has logical values, and c(1, "two", 3) mixes numbers and text, which converts all to characters.
  3. Final Answer:

    c(1, 2, 3, 4) -> Option D
  4. Quick Check:

    Numeric vector = c(1, 2, 3, 4) [OK]
Hint: Numeric vectors contain only numbers inside c() [OK]
Common Mistakes:
  • Mixing numbers and text creates character vector
  • Confusing logical vectors with numeric
  • Using quotes around numbers
2. Which of these is the correct syntax to create a character vector in R?
easy
A. c(1, 2, 3)
B. c("apple", "banana", "cherry")
C. c(TRUE, FALSE, TRUE)
D. c(1, "banana", 3)

Solution

  1. Step 1: Identify character vector syntax

    Character vectors contain text strings, which must be inside quotes.
  2. Step 2: Check options for quoted text

    c("apple", "banana", "cherry") has all elements as quoted text strings, so it is a character vector. c(1, 2, 3) is numeric, c(TRUE, FALSE, TRUE) is logical, and c(1, "banana", 3) mixes types causing coercion.
  3. Final Answer:

    c("apple", "banana", "cherry") -> Option B
  4. Quick Check:

    Character vector = c("apple", "banana", "cherry") [OK]
Hint: Use quotes around text to create character vectors [OK]
Common Mistakes:
  • Forgetting quotes around text
  • Mixing types in one vector
  • Using numbers without quotes for text
3. What is the output of this R code?
x <- c(5, 10, 15)
y <- c("a", "b", "c")
z <- c(x, y)
print(z)
medium
A. [1] "5" "10" "15" "a" "b" "c"
B. [1] 5 10 15 "a" "b" "c"
C. [1] 5 10 15 NA NA NA
D. Error: cannot combine numeric and character vectors

Solution

  1. Step 1: Understand vector combining rules in R

    When combining numeric and character vectors, R converts all elements to character to keep the same type.
  2. Step 2: Analyze the combined vector z

    Vector z contains numbers 5, 10, 15 and characters "a", "b", "c". All numbers become strings, so print shows all as character strings.
  3. Final Answer:

    [1] "5" "10" "15" "a" "b" "c" -> Option A
  4. Quick Check:

    Mixed vector coerces to character = [1] "5" "10" "15" "a" "b" "c" [OK]
Hint: Mixed types in vector become character strings [OK]
Common Mistakes:
  • Expecting numeric values to stay numeric
  • Thinking R throws error on combining types
  • Assuming NA values appear for mismatched types
4. Identify the error in this R code:
vec <- c(1, 2, "three", 4)
sum(vec)
medium
A. No error; sum returns 10
B. sum() returns NA due to mixed types
C. Error because sum() cannot handle character vectors
D. Error because c() cannot mix numbers and text

Solution

  1. Step 1: Understand vector creation with mixed types

    c(1, 2, "three", 4) creates a character vector because of the text element "three".
  2. Step 2: Check sum() behavior on character vectors

    sum() expects numeric input. Passing a character vector causes an error because it cannot sum text.
  3. Final Answer:

    Error because sum() cannot handle character vectors -> Option C
  4. Quick Check:

    sum(character vector) = Error [OK]
Hint: sum() needs numeric vectors, not characters [OK]
Common Mistakes:
  • Assuming sum() converts characters to numbers
  • Thinking c() forbids mixing types (it coerces instead)
  • Expecting sum() to return NA silently
5. You have two vectors:
nums <- c(2, 4, 6, 8)
chars <- c("2", "4", "6", "8")

How can you create a numeric vector from chars and add it to nums element-wise?
hard
A. nums + as.numeric(chars)
B. nums + chars
C. as.character(nums) + chars
D. sum(nums, chars)

Solution

  1. Step 1: Convert character vector to numeric

    Use as.numeric(chars) to change text numbers to numeric values.
  2. Step 2: Add numeric vectors element-wise

    Adding nums + as.numeric(chars) adds corresponding elements correctly.
  3. Final Answer:

    nums + as.numeric(chars) -> Option A
  4. Quick Check:

    Convert chars to numeric before adding = nums + as.numeric(chars) [OK]
Hint: Convert text to numbers with as.numeric() before math [OK]
Common Mistakes:
  • Adding numeric and character vectors directly
  • Using sum() instead of element-wise addition
  • Converting numeric to character instead of chars to numeric
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