Bird
Raised Fist0
R Programmingprogramming~5 mins

Vector arithmetic (element-wise) in R Programming - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Vector arithmetic (element-wise)
O(n)
Understanding Time Complexity

When we do arithmetic on vectors in R, each element is processed one by one.

We want to know how the time to finish grows as the vector gets longer.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


x <- 1:1000

y <- 1001:2000

z <- x + y  # element-wise addition
    

This code adds two vectors element by element to create a new vector.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Adding each pair of elements from two vectors.
  • How many times: Once for each element in the vectors.
How Execution Grows With Input

As the vector length grows, the number of additions grows the same way.

Input Size (n)Approx. Operations
1010 additions
100100 additions
10001000 additions

Pattern observation: The work grows directly with the number of elements.

Final Time Complexity

Time Complexity: O(n)

This means the time to add vectors grows in a straight line with their length.

Common Mistake

[X] Wrong: "Adding two vectors takes the same time no matter their size."

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

Interview Connect

Understanding how vector operations scale helps you write efficient code and explain performance clearly.

Self-Check

"What if we added three vectors together element-wise instead of two? How would the time complexity change?"

Practice

(1/5)
1.

What happens when you add two vectors of the same length in R, like c(1, 2, 3) + c(4, 5, 6)?

easy
A. The vectors are concatenated into one longer vector.
B. Only the first elements are added, the rest are ignored.
C. Each element in the first vector is added to the corresponding element in the second vector.
D. An error occurs because vectors cannot be added.

Solution

  1. Step 1: Understand element-wise addition

    In R, adding two vectors of the same length adds each element from the first vector to the matching element in the second vector.
  2. Step 2: Apply addition to given vectors

    Adding c(1, 2, 3) and c(4, 5, 6) results in c(1+4, 2+5, 3+6) which is c(5, 7, 9).
  3. Final Answer:

    Each element in the first vector is added to the corresponding element in the second vector. -> Option C
  4. Quick Check:

    Element-wise addition = Each element in the first vector is added to the corresponding element in the second vector. [OK]
Hint: Add vectors element by element when lengths match [OK]
Common Mistakes:
  • Thinking vectors concatenate instead of adding
  • Assuming only first elements add
  • Expecting an error for vector addition
2.

Which of the following is the correct syntax to subtract two vectors a and b element-wise in R?

easy
A. subtract_vectors(a, b)
B. subtract(a, b)
C. a %minus% b
D. a - b

Solution

  1. Step 1: Recall vector subtraction syntax in R

    In R, element-wise subtraction of vectors uses the minus operator - directly between vectors.
  2. Step 2: Verify given options

    Only a - b is valid R syntax for element-wise subtraction. The other options are not built-in R functions or operators.
  3. Final Answer:

    a - b -> Option D
  4. Quick Check:

    Use - operator for vector subtraction [OK]
Hint: Use '-' operator directly between vectors [OK]
Common Mistakes:
  • Using non-existent functions like subtract()
  • Trying special operators like %minus%
  • Confusing subtraction with other functions
3.

What is the output of the following R code?

v1 <- c(2, 4, 6)
v2 <- c(1, 3, 5)
result <- v1 * v2
print(result)

medium
A. [1] 2 4 6 1 3 5
B. [1] 2 12 30
C. [1] 2 7 11
D. [1] 3 7 11

Solution

  1. Step 1: Understand element-wise multiplication

    In R, multiplying two vectors multiplies each element of the first vector by the corresponding element of the second vector.
  2. Step 2: Calculate each product

    Multiply elements: 2*1=2, 4*3=12, 6*5=30. So the result is c(2, 12, 30).
  3. Final Answer:

    [1] 2 12 30 -> Option B
  4. Quick Check:

    Element-wise multiplication = [1] 2 12 30 [OK]
Hint: Multiply vectors element by element for correct output [OK]
Common Mistakes:
  • Adding instead of multiplying
  • Concatenating vectors instead of multiplying
  • Getting sums instead of products
4.

Consider this R code snippet:

v1 <- c(1, 2, 3)
v2 <- c(4, 5)
result <- v1 + v2
print(result)

What is the issue with this code?

medium
A. Vectors have different lengths causing recycling warning.
B. Syntax error due to missing operator.
C. Result will be NULL because vectors differ in length.
D. No issue; code runs correctly without warnings.

Solution

  1. Step 1: Check vector lengths

    Vector v1 has length 3, v2 has length 2. They differ in length.
  2. Step 2: Understand recycling in R

    R recycles the shorter vector to match the longer one but gives a warning if lengths are not multiples. Here, 3 is not a multiple of 2, so a warning occurs.
  3. Final Answer:

    Vectors have different lengths causing recycling warning. -> Option A
  4. Quick Check:

    Unequal vector lengths cause recycling warning [OK]
Hint: Vectors must be same length or multiples to avoid warnings [OK]
Common Mistakes:
  • Ignoring recycling warnings
  • Expecting syntax errors for length mismatch
  • Assuming result is NULL when lengths differ
5.

You have two vectors representing daily sales for two stores:
store1 <- c(10, 20, 30, 40)
store2 <- c(5, 15, 25, 35)
How do you calculate the total sales per day for both stores combined using vector arithmetic?

hard
A. total_sales <- store1 + store2
B. total_sales <- store1 * store2
C. total_sales <- store1 - store2
D. total_sales <- c(store1, store2)

Solution

  1. Step 1: Understand the goal

    We want total sales per day, so we add sales from both stores for each day.
  2. Step 2: Use element-wise addition

    Adding store1 and store2 element-wise sums daily sales: c(10+5, 20+15, 30+25, 40+35) = c(15, 35, 55, 75).
  3. Final Answer:

    total_sales <- store1 + store2 -> Option A
  4. Quick Check:

    Add vectors element-wise for daily totals [OK]
Hint: Add vectors to combine daily sales totals [OK]
Common Mistakes:
  • Multiplying instead of adding sales
  • Subtracting sales mistakenly
  • Concatenating vectors instead of adding
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