Skip to content

R Frequently Asked Questions

Statistical Computing and Graphics in R

Menu
  • Learn R
    • R Basics
      • R FAQS about Package
      • R GUI
      • Using R packages
      • Missing Values
    • R Graphics
    • Data Structure
      • Data Frame
      • Matrices
      • List
    • R Programming
    • Statistical Models
  • R Quiz
    • MCQs R Programming
    • R Basic Quiz 7
    • MCQs R Debugging 6
    • MCQs R Vectors 5
    • R History & Basics 4
    • R Language Test 3
    • R Language MCQs 2
    • R Language MCQs 1
  • MCQs
    • MCQs Statistics
      • MCQs Basic Statistics
      • MCQs Probability
      • MCQs Graph & Charts
      • MCQs Sampling
      • MCQs Inference
      • MCQs Correlation & Regression
      • MCQs Time Series
      • MCQs Index Numbers
      • MCQs Quality Control 1
    • MCQS Computer
    • MCQs Mathematics Part-I
  • About ME
  • Contact Us
  • Glossary

Category: Matrices

Introduction: Matrices in R

No Comments
| Data Structure, Matrices

While dealing with matrices in R, all columns in the matrix must have the same mode (numeric, character, etc.), and the same length. A matrix is a two-dimensional rectangular data set. It can be created using a vector input to the matrix( ) functions.

The general syntax of creating matrices in R is:

matrix_name <- matrix(vector, nrow = r, ncol = c,
byrow = FALSE, dimnames = list(char_vector_rownames,
char_vector_colnames)
)

byrow = TRUE indicates that the matrix should be filled by rows-wise.

dimnames provides optional labels for the column and rows.

Creating Matrices in R

Following the general syntax of the matrix( ) function, let us create a matrix from a vector of the first 20 numbers.

Example 1:

# Generate matrix having 5 rows and 4 columns 
y1 <- matrix (1 : 20, nrow = 5, ncol = 4) ; y1

# Output
> y1
[,1] [,2] [,3] [,4]
[1,] 1 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20
y2 <- matrix (1 : 20, nrow = 5, ncol = 4, byrow = FALSE); y2

# Output
> y2
[,1] [,2] [,3] [,4]
[1,] 1 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20
y3 <- matrix (1 : 20, nrow = 5, ncol = 4, byrow = TRUE) ; y3

# Output
> y3
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 5 6 7 8
[3,] 9 10 11 12
[4,] 13 14 15 16
[5,] 17 18 19 20

Example 2:

elements <- c(11, 23, 29, 67)
rownames <- c("R1", "R2")
colnames <- c("C1", "C2")
m1 <- matrix(elements, nrow = 2, ncol = 2, byrow = TRUE, 
      dimnames = list(rownames, colnames)
      )

# Output
> m1
   C1 C2
R1 11 23
R2 29 67

Try

nrow = 4 and ncol = 1, byrow = FALSE

Note the difference. You may also have some errors related to the number of rows or columns. Therefore, if you change the number of rows or columns then ensure that you have the same number of row names and column names too.

Matrix Operations in R

In the R language, there are some operators and functions that can be used to perform computation on one or more matrices. Some basic matrix operations in R are:

Matrix OperationOperator/ Function
Add/ Subtract+, −
Multiply%*%
Transposet( )
Inversesolve ( )
Extract Diagonaldiag( )It is described at the end too
Determinantdet( )

The following are some examples related to these operators and matrix functions.

m1 <- matrix(c(11, 23, 9, 35), nrow = 2)
m2 <- matrix(c(5, 19, 11, 20), nrow =2)
m3 <- m1 + m2
m4 <- m1 - m2
m5 <- m1 %*% m2
m6 <- m1 / m2

m1t <- t(m1)
m1tminv <- solve(m1t %*% m1)
diag(m1tminv)

# Output

> m1
     [,1] [,2]
[1,]   11    9
[2,]   23   35
> m2
     [,1] [,2]
[1,]    5   11
[2,]   19   20
> m3
     [,1] [,2]
[1,]   16   20
[2,]   42   55
> m4
     [,1] [,2]
[1,]    6   -2
[2,]    4   15
> m5
     [,1] [,2]
[1,]  226  301
[2,]  780  953
> m6
         [,1]      [,2]
[1,] 2.200000 0.8181818
[2,] 1.210526 1.7500000
> m1t
     [,1] [,2]
[1,]   11   23
[2,]    9   35
> m1tminv
            [,1]        [,2]
[1,]  0.04121954 -0.02853175
[2,] -0.02853175  0.02051509
> diag(m1tminv)
[1] 0.04121954 0.02051509

There some other important functions that can be used to perform some required computation on matrices in R. These matrix operations in R are described below for matrix X. You can use your own matrix.

Consider we have a matrix X with elements.

X <- matrix(1:20, nrow = 4, ncol = 5) 
X
FunctionDescription
rowSums(X)Compute the total of each row of Matrix X
colSums(X)Compute the total of each column of Matrix X
rowMeans(X)Compute the average value of each row of Matrix X
colMeans(X)Compute the average value of each column of Matrix X
diag(X)Extract diagonal elements of Matrix X, or
Create a Matrix that has required diagonal elements such as diag(1:5), diag(5),
crossprod(X,X)Compute X’X. It is a shortcut of t(X)%*%X

Obtaining $ \beta $’s using Matrices in R

Consider we have a dataset that has a response variable and few regressors. There are many ways to create data (or variables), such as one can create a vector for each variable, a data frame for all of the variables, matrices, or can read data stored in a file.

Here we try it using vectors, then bind the vectors where required.

y  <- c(5, 6, 7, 9, 8, 4, 3, 2, 1, 6, 0, 7)
x1 <- c(4, 5, 6, 7, 8, 3, 4, 9, 9, 8, 7, 5)
x2 <- c(10, 22, 23, 10, 11, 14, 15, 16, 17, 12, 11, 17)
x  <- cbind(1, x1, x2)

The cbind( ) function is used to create a matrix x. Note that 1 is also bounded to get the intercept term (the model with the intercept term). Let us compute $\beta$’s from OLS using matrix functions and operators.

xt <- t(x)
xtx <- xt %*% x
xtxinv <- solve(xtx)
xty <- xt %*% y
b <- xtxinv %*% xty

The output is

> x
        x1 x2
 [1,] 1  4 10
 [2,] 1  5 22
 [3,] 1  6 23
 [4,] 1  7 10
 [5,] 1  8 11
 [6,] 1  3 14
 [7,] 1  4 15
 [8,] 1  9 16
 [9,] 1  9 17
[10,] 1  8 12
[11,] 1  7 11
[12,] 1  5 17
> xt
   [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
      1    1    1    1    1    1    1    1    1     1     1     1
x1    4    5    6    7    8    3    4    9    9     8     7     5
x2   10   22   23   10   11   14   15   16   17    12    11    17
> xtx
         x1   x2
    12   75  178
x1  75  515 1103
x2 178 1103 2854
> xtxinv

Data Structure Matrix in R

Share this:

  • Twitter
  • Facebook
  • LinkedIn
  • Skype
  • Tumblr
  • Pinterest
  • Print
  • WhatsApp
  • Telegram
  • Reddit
  • Pocket

Like this:

Like Loading...

Read More »

Matrix | Data Structure for Matrix in R

No Comments
| Data Structure, Matrices

Question: What is a matrix in R?
Answer: In R language matrices are two-dimensional arrays of elements all of which are of the same type, for example, numbers, character strings or logical values.

Matrices may be constructed using the built-in function “matrix”, which reshapes its first argument into a matrix having a specified number of rows as second argument and number of columns as the third matrix.

Question: Give an example of how the matrix is constructed in R language?
Answer: A 3 by 3 matrix (3 rows and 3 columns) matrix may be constructed such as:

> matrix(1:9, 3, 3)
> matrix(c(1,2,3,4,5,6,7,8,9), 3, 3)matrix(runif(9), 3,3)

First, two commands construct a matrix of 9 elements having 3 rows and 3 columns consisting numbers from 1 up to 9. The third command makes a matrix of 3 rows and 3 columns with random numbers from a uniform distribution.

Question: How the matrix elements are filled?
Answer: A matrix is filled by columns, unless the optional argument byrow is set to TRUE as an argument in matrix command, for example

> matrix(1:9, 3, 3, byrow=TRUE)

Question: Can matrix be stored in R?
Answer: Any matrix can be stored in R such as

> m <- matrix(1:9, 3, 3)
> mymatrix <- matrix( rnorm(16), nrow=4 )

Matrices are stored in “m” and “mymatrix” object. The second command constructs a matrix having 16 elements with 4 rows from a normal distribution having mean 0 and variance 1.

Question: what is the use of dim command in R?
Answer: The dim (dimension) is an attribute of the matrix in R, which tells the number of rows and the number of columns of a matrix, for example,

> dim(mymatrix)

This will result in output showing 4  4, meaning that 4 rows and 4 column matrix.

Question: Can we name rows of a matrix in R?
Answer: Yes in R language we can name rows of a matrix according to ones requirements, such as

> rownames(mymatrix) <- c(“x1”, “x2”, “x3”, “x4”)
> mymatrix

Question: Can column names be changes or updated in R?
Answer: The procedure is the same as changing of rows name. For this purpose colnames command is used, for example

> colnames(mymatrix)<-c(“A”, “B”, “C”, “D”)
> mymatrix

Question: What is the purpose of attributes command for the matrix in R?
Answer: The attributes function can be used to get information about the dimension of the matrix and dimnames (dimension names). For example;

> attributes(mymatrix)

Share this:

  • Twitter
  • Facebook
  • LinkedIn
  • Skype
  • Tumblr
  • Pinterest
  • Print
  • WhatsApp
  • Telegram
  • Reddit
  • Pocket

Like this:

Like Loading...

Read More »

Subscribe via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 257 other subscribers

Search Form

Facebook

Facebook

Categories

  • Advance R Programming (3)
  • Data Analysis (10)
    • Comparisons Tests (2)
    • Statistical Models (8)
  • Data Structure (9)
    • Data Frame (2)
    • Factors in R (1)
    • List (2)
    • Matrices (2)
    • Vectors in R (1)
  • Importing/ Exporting Data (4)
    • R Data Library (4)
  • R Control Structure (3)
    • For loop in R (1)
    • Switch Statement (1)
  • R FAQS (18)
    • Missing Values (2)
    • R Basics (12)
    • R FAQS about Package (3)
    • R Programming (2)
  • R Graphics (4)
    • Exploring Data in R (1)
    • plot Function (2)
  • R Language Basics (4)
  • R Language Quiz (8)
  • Using R packages (2)
https://www.youtube.com/watch?v=MZpiMyAfnYQ&list=PLB01qg3XnNiMbKkvP2wYzzHkv6ZekaKZx

Posts: itfeature.com: Basic Statistics and Data Analysis

MCQs Time Series Analysis 5

An Introduction to the Pakistan Bureau of Statistics

Prepared by: Dr. Abdul Majid, Statistical Officer, Pakistan Bureau of Statistics, Regional Office Multan. Introduction (Pakistan Bureau of Statistics) Pakistan Bureau of Statistics (PBS) is the prime official agency of Pakistan. It is responsible…

Multiple Linear Regression Models

A wide scatter of points around the regression line shows that there is still room for further improvement. Including extra variables in the model will map up some of the residual variability remaining after…

MCQs Estimation Quiz 7

MCQs from Statistical Inference cover the topics of Estimation and Hypothesis Testing for the preparation of exams and different statistical job tests in Government/ Semi-Government or Private Organization sectors. These tests are also helpful…

Job Interview: Recently Asked Questions

Following are different Job Interview questions asked in interviews related to Jobs of Statistical Officer, Data Analysts, Lecturer in Statistics, Enumerator, etc. These questions are also useful for job interviews related to different disciplines….

Posts: gmstat.com: GM Statistics

MCQs Econometrics Quiz 5

This quiz is about Econometrics, which covers the topics of Regression analysis, correlation, dummy variable, multicollinearity, heteroscedasticity, autocorrelation, and many other topics. Let’s start with MCQs Econometrics test An application of different statistical methods applied to the economic data used…

MCQs Computer Programming – 1

The Quiz is about MCQs of Computer Programing and Programming languages. Take another Quiz bout Application Software If you Found that the Above POSTED MCQ is/ are WRONGPLEASE COMMENT below The MCQ with the CORRECT ANSWER and its DETAILED EXPLANATION.

Islamic Quiz – 2

Islamic Quiz for PPSC Lecturer Test Perform another Quiz about Islamic Quiz 1 If you Found that the Above POSTED MCQ is/ are WRONGPLEASE COMMENT below The MCQ with the CORRECT ANSWER and its DETAILED EXPLANATION.

Islamic Quiz – 1

Islamic Quiz for PPSC Lecturer Test Perform another Quiz about Computer If you Found that the Above POSTED MCQ is/ are WRONGPLEASE COMMENT below The MCQ with the CORRECT ANSWER and its DETAILED EXPLANATION.

MCQs Computer Basics 4

This quiz is about MCQS computer Basics. The greatest scientists of their era, Abu Jaffar Muhammad Ibn Musa Al-Khawarizmi (780-850), Alan Mathison Turing (1912-1954), and John Von Neuman (1903-1957) took part in the invention of computers. A mathematician and a…

R Frequently Asked Questions 2022 . Powered by WordPress

%d bloggers like this:
    pixel