开发手册 欢迎您!
软件开发者资料库

R - 矩阵

R矩阵 - 从简单和简单的步骤学习R编程语言,从基本到高级概念,包括R安装,语言基础,语法,文字,数据类型,变量,函数,循环,决策,模块,数组,列表,向量,数学,矩阵,统计,图形,Excel数据,csv数据,概述,环境设置,操作员,字符串,因素,数据框,包,数据重塑,二进制文件,XML文件,Json文件,Web数据,数据库,饼图,条形图,箱线图,直方图,折线图,散点图,平均值,中位数和模式,线性回归,多元回归,Logistic回归,正态分布,二项分布,泊松回归,协方差分析,时间序列分析,非线性最小二乘,决策树,随机森林,生存分析,卡方检验。

矩阵是R对象,其中元素以二维矩形布局排列.它们包含相同原子类型的元素.虽然我们可以创建一个只包含字符或只包含逻辑值的矩阵,但它们并没有多大用处.我们使用包含数字元素的矩阵用于数学计算.

使用矩阵()函数创建矩阵.

语法

在R中创建矩阵的基本语法是 :

matrix(data, nrow, ncol, byrow, dimnames)

以下是所用参数的描述 :

  • 数据是输入向量,它成为矩阵的数据元素.

  • nrow 是要创建的行数.

  • ncol 是的数量要创建的列.

  • byrow 是一个合乎逻辑的线索.如果为TRUE,则输入向量元素按行排列.

  • dimname 是分配给行和列的名称.

示例

创建一个以数字向量作为输入的矩阵.

# Elements are arranged sequentially by row.M <- matrix(c(3:14), nrow = 4, byrow = TRUE)print(M)# Elements are arranged sequentially by column.N <- matrix(c(3:14), nrow = 4, byrow = FALSE)print(N)# Define the column and row names.rownames = c("row1", "row2", "row3", "row4")colnames = c("col1", "col2", "col3")P <- matrix(c(3:14), nrow = 4, byrow = TRUE, dimnames = list(rownames, colnames))print(P)

当我们执行上面的代码时,它产生以下结果 :

    [,1] [,2] [,3][1,]    3    4    5[2,]    6    7    8[3,]    9   10   11[4,]   12   13   14     [,1] [,2] [,3][1,]    3    7   11[2,]    4    8   12[3,]    5    9   13[4,]    6   10   14     col1 col2 col3row1    3    4    5row2    6    7    8row3    9   10   11row4   12   13   14

访问矩阵的元素

可以使用元素的列和行索引访问矩阵的元素.我们考虑上面的矩阵P来找到下面的具体元素.

# Define the column and row names.rownames = c("row1", "row2", "row3", "row4")colnames = c("col1", "col2", "col3")# Create the matrix.P <- matrix(c(3:14), nrow = 4, byrow = TRUE, dimnames = list(rownames, colnames))# Access the element at 3rd column and 1st row.print(P[1,3])# Access the element at 2nd column and 4th row.print(P[4,2])# Access only the  2nd row.print(P[2,])# Access only the 3rd column.print(P[,3])

当我们执行上面的代码时,它产生以下结果 :

  [1] 5  [1] 13  col1 col2 col3  6 7 8  row1 row2 row3 row4  5 8 11 14

矩阵计算

使用R运算符对矩阵执行各种数学运算.操作的结果也是一个矩阵.

操作中涉及的矩阵的维度(行数和列数)应相同.

Matrix Addition&减法

# Create two 2x3 matrices.matrix1 <- matrix(c(3, 9, -1, 4, 2, 6), nrow = 2)print(matrix1)matrix2 <- matrix(c(5, 2, 0, 9, 3, 4), nrow = 2)print(matrix2)# Add the matrices.result <- matrix1 + matrix2cat("Result of addition","\n")print(result)# Subtract the matricesresult <- matrix1 - matrix2cat("Result of subtraction","\n")print(result)

当我们执行上面的代码时,它产生以下结果 :

     [,1] [,2] [,3][1,]    3   -1    2[2,]    9    4    6     [,1] [,2] [,3][1,]    5    0    3[2,]    2    9    4Result of addition      [,1] [,2] [,3][1,]    8   -1    5[2,]   11   13   10Result of subtraction      [,1] [,2] [,3][1,]   -2   -1   -1[2,]    7   -5    2

Matrix Multiplication 分部

# Create two 2x3 matrices.matrix1 <- matrix(c(3, 9, -1, 4, 2, 6), nrow = 2)print(matrix1)matrix2 <- matrix(c(5, 2, 0, 9, 3, 4), nrow = 2)print(matrix2)# Multiply the matrices.result <- matrix1 * matrix2cat("Result of multiplication","\n")print(result)# Divide the matricesresult <- matrix1 / matrix2cat("Result of division","\n")print(result)

当我们执行上面的代码时,它产生以下结果 :

    [,1] [,2] [,3][1,]    3   -1    2[2,]    9    4    6     [,1] [,2] [,3][1,]    5    0    3[2,]    2    9    4Result of multiplication      [,1] [,2] [,3][1,]   15    0    6[2,]   18   36   24Result of division      [,1]      [,2]      [,3][1,]  0.6      -Inf 0.6666667[2,]  4.5 0.4444444 1.5000000