Bird
Raised Fist0
R Programmingprogramming~10 mins

Matrix arithmetic in R Programming - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a 2x2 matrix with values 1 to 4.

R Programming
mat <- matrix(1:4, nrow = [1], ncol = 2)
Drag options to blanks, or click blank then click option'
A1
B3
C2
D4
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong number of rows like 3 or 4.
Confusing rows and columns.
2fill in blank
medium

Complete the code to add two matrices A and B.

R Programming
result <- [1] + B
Drag options to blanks, or click blank then click option'
AA
BB
Cmatrix
Dsum
Attempts:
3 left
💡 Hint
Common Mistakes
Using sum which sums all elements instead of element-wise addition.
Using matrix keyword incorrectly.
3fill in blank
hard

Fix the error in the code to multiply matrices X and Y.

R Programming
product <- X [1] Y
Drag options to blanks, or click blank then click option'
A*
B%*%
C%
D%%
Attempts:
3 left
💡 Hint
Common Mistakes
Using * which does element-wise multiplication.
Using modulo operators like %% or %.
4fill in blank
hard

Fill both blanks to create a matrix M with 3 rows and 4 columns filled by row.

R Programming
M <- matrix(1:12, nrow = [1], ncol = [2], byrow = TRUE)
Drag options to blanks, or click blank then click option'
A3
B4
CFALSE
DTRUE
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping rows and columns.
Setting byrow to FALSE by mistake.
5fill in blank
hard

Fill all three blanks to create a named matrix mat with row and column names.

R Programming
mat <- matrix(1:6, nrow = [1], ncol = [2], dimnames = list([3], c("A", "B")))
Drag options to blanks, or click blank then click option'
A2
B3
Cc("Row1", "Row2", "Row3")
Dc("Row1", "Row2")
Attempts:
3 left
💡 Hint
Common Mistakes
Mismatching row names length with number of rows.
Swapping rows and columns counts.

Practice

(1/5)
1. In R, what does the operator %*% do when applied between two matrices?
easy
A. Performs matrix multiplication following linear algebra rules
B. Adds the two matrices element-wise
C. Subtracts the second matrix from the first element-wise
D. Multiplies the two matrices element-wise

Solution

  1. Step 1: Understand matrix operators in R

    In R, + and - perform element-wise addition and subtraction respectively, while %*% is used for matrix multiplication.
  2. Step 2: Identify the role of %*%

    The operator %*% multiplies matrices according to linear algebra rules, not element-wise.
  3. Final Answer:

    Performs matrix multiplication following linear algebra rules -> Option A
  4. Quick Check:

    %*% = matrix multiplication [OK]
Hint: Remember: %*% means matrix multiplication, not element-wise [OK]
Common Mistakes:
  • Confusing %*% with element-wise multiplication
  • Thinking + or - does matrix multiplication
  • Using * for matrix multiplication
2. Which of the following is the correct way to create a 2x2 matrix with values 1, 2, 3, 4 in R?
easy
A. matrix(1, 2, 3, 4, 2, 2)
B. matrix(1, 2, 3, 4, nrow=2, ncol=2)
C. matrix(c(1, 2, 3, 4), rows=2, cols=2)
D. matrix(c(1, 2, 3, 4), nrow=2, ncol=2)

Solution

  1. Step 1: Recall matrix creation syntax in R

    The function matrix() takes a vector of values and parameters nrow and ncol to specify dimensions.
  2. Step 2: Check each option

    matrix(c(1, 2, 3, 4), nrow=2, ncol=2) correctly uses c(1, 2, 3, 4) and named arguments nrow=2, ncol=2. matrix(1, 2, 3, 4, nrow=2, ncol=2) has wrong argument format. matrix(c(1, 2, 3, 4), rows=2, cols=2) uses invalid argument names. matrix(1, 2, 3, 4, 2, 2) uses positional arguments without the vector wrapper.
  3. Final Answer:

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

    Use c() vector and nrow, ncol named args [OK]
Hint: Always wrap values in c() and name nrow, ncol [OK]
Common Mistakes:
  • Not using c() to combine values
  • Using wrong argument names like rows or cols
  • Passing values without vector wrapper
3. What is the output of the following R code?
m1 <- matrix(c(1, 2, 3, 4), nrow=2, ncol=2, byrow=TRUE)
m2 <- matrix(c(5, 6, 7, 8), nrow=2, ncol=2, byrow=TRUE)
m3 <- m1 + m2
print(m3)
medium
A. [1 2; 3 4]
B. Error: non-conformable arrays
C. [6 8; 10 12]
D. [5 6; 7 8]

Solution

  1. Step 1: Understand element-wise addition

    Using + between matrices adds corresponding elements: (1+5), (2+6), (3+7), (4+8).
  2. Step 2: Calculate each element

    Results: 6, 8, 10, 12 arranged in 2x2 matrix.
  3. Final Answer:

    [6 8; 10 12] -> Option C
  4. Quick Check:

    Element-wise addition = sum of each element pair [OK]
Hint: Use + for element-wise addition, add each element pair [OK]
Common Mistakes:
  • Expecting matrix multiplication instead of addition
  • Confusing matrix dimensions causing errors
  • Misreading matrix layout in output
4. Consider this R code snippet:
m1 <- matrix(c(1, 2, 3, 4), nrow=2)
m2 <- matrix(c(5, 6, 7), nrow=3)
m3 <- m1 %*% m2
print(m3)

What is the problem with this code?
medium
A. The matrices have incompatible dimensions for multiplication
B. The matrix m1 is not square
C. The operator %*% is invalid for matrices
D. The matrix m2 has missing values

Solution

  1. Step 1: Check matrix dimensions

    m1 is 2x2, m2 is 3x1 (since 3 values and nrow=3). For multiplication, columns of m1 (2) must equal rows of m2 (3).
  2. Step 2: Identify dimension mismatch

    2 != 3, so multiplication is not possible, causing an error.
  3. Final Answer:

    The matrices have incompatible dimensions for multiplication -> Option A
  4. Quick Check:

    Matrix multiplication needs matching inner dimensions [OK]
Hint: Check if m1 columns = m2 rows before multiplying [OK]
Common Mistakes:
  • Assuming any matrices can be multiplied
  • Ignoring dimension mismatch errors
  • Thinking %*% works element-wise
5. You have two matrices in R:
m1 <- matrix(c(1, 0, 2, -1), nrow=2)
m2 <- matrix(c(3, 1, 4, 2), nrow=2)

You want to compute the matrix product m1 %*% m2 and then subtract the identity matrix of size 2. Which code correctly does this?
hard
A. m3 <- m1 * m2 - diag(2)
B. m3 <- m1 %*% m2 - diag(2)
C. m3 <- m1 %*% m2 - matrix(1, 2, 2)
D. m3 <- m1 %*% m2 - identity(2)

Solution

  1. Step 1: Compute matrix multiplication

    Use %*% to multiply m1 and m2 correctly.
  2. Step 2: Subtract identity matrix

    Use diag(2) to create a 2x2 identity matrix and subtract it from the product.
  3. Final Answer:

    m3 <- m1 %*% m2 - diag(2) -> Option B
  4. Quick Check:

    Use diag() for identity matrix in subtraction [OK]
Hint: Use diag(n) for identity matrix, %*% for multiplication [OK]
Common Mistakes:
  • Using * instead of %*% for multiplication
  • Using matrix(1,2,2) which is all ones, not identity
  • Using identity() which is not an R base function
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