c/c++语言开发共享R语言数据结构之矩阵、数组与数据框详解

前言了解一门语言,首先要了解它的数据结构。该文主要介绍矩阵、数组和数据框。文章仅供学习使用,欢迎留言交流哦!一、矩阵(matrix)1.1矩阵的创建:矩阵由指定的行(row)和列(column)构成,

前言

了解一门语言,首先要了解它的数据结构。该文主要介绍矩阵、数组和数据框。文章仅供学习使用,欢迎留言交流哦!

一、矩阵(matrix)

1.1矩阵的创建:

矩阵由指定的行(row)和列(column)构成,与高数中的矩阵相同。与之前提到的向量一样,矩阵只能储存同种类型的数据。

matrix(  ):创建矩阵

matrix(    data  #要创建矩阵的数据,一般为向量    nrow  #行数    ncol  #列数    byrow = true  #若为true,按行填充矩阵,若为false,按列填充矩阵    dimnames  #为矩阵个维度命名  )

接下来使用该函数来创建一个3*3的矩阵:

R语言数据结构之矩阵、数组与数据框详解

R语言数据结构之矩阵、数组与数据框详解

如图所示,这个由1~9组成的3*3矩阵,左边指定了行数未指定列数,右边指定了列数未指定行数,但所得矩阵相同,所以系统会自动识别并填充。上面两个矩阵都是按列填充矩阵,由于未设置byrow,所以采用默认值false。下面来看一下当byrow为true时,有何不同:

R语言数据结构之矩阵、数组与数据框详解

R语言数据结构之矩阵、数组与数据框详解

可以看出,byrow为true时,矩阵对数据进行了按行填充。

接下来介绍dimnames函数,为矩阵的行与列命令,第一个向量为行名,第二个向量为列名。

matrix(1:9,ncol = 3,byrow = true,dimnames = list(c("x1","x2","x3"),c("y1","y2","y3")))

得到下图所示矩阵,与上述矩阵相比,[1,]等变成了x1,y1。

R语言数据结构之矩阵、数组与数据框详解

对于已经创建好的向量,可以使用dimnames(),rownames(),colnames()为矩阵进行命名:

创建名为train1,train2的矩阵,train1用dimnames()进行命名,train2分别用rownames(),colnames()对行与列进行命名。

train1 <- matrix(1:9,ncol = 3)  train2 <- matrix(10:18,ncol = 3)  dimnames(train1) <- list(c("x1","x2","x3"),c("y1","y2","y3"))  (rownames(train2) <- c("迪迦","塞罗","特斯拉"))  (colnames(train2) <- c("天王","地虎","二百五"))

R语言数据结构之矩阵、数组与数据框详解

R语言数据结构之矩阵、数组与数据框详解

所得结果如上图。同时dimnames(),rownames(),colnames()还能获取矩阵的名称,使用dimnames获取train2的名称(其他两个大家可以自己尝试一下昂),结果如下图:

R语言数据结构之矩阵、数组与数据框详解

1.2访问矩阵的数据:

matrixname[ridx,cidx]:访问matrixname矩阵中ridx行cidx列的数据:

例如访问train1中的第二行第二列数据,为5。

R语言数据结构之矩阵、数组与数据框详解

也可以使用负数,效果与向量中使用负数相同,即输出除某列或某行的其他所有数据。例如输出train2中除第二行的所有数据。

R语言数据结构之矩阵、数组与数据框详解

1.3矩阵的运算:

四则运算符
运算符 含义
x + a 矩阵x中所有值与标量a相加,还可以使用"-","*","/"运算符
x + y 对矩阵x与矩阵y求和,还能使用"-"求矩阵间的差
x %*% y 求矩阵x与矩阵y的积
矩阵运算相关的函数
函数名 函数作用
solve() 从式子y%*%x=z中求解x,y、z为矩阵
nrow() 求行数
ncol() 求列数
dim 求维度
dim <- 设置对象的维度
t() 求矩阵的转置矩阵

这里就不演示了,大家可以自己尝试,如果有疑问可以评论交流(一般中午、晚上会看的,欢迎评论哦)。

二、数组(array)

2.1数组的创建:

数组与矩阵、向量不同,它可以存储不同数据类型的数据。而且数组是多维的,可以是2*3*4维的。创建数组使用array()函数:

array(    data #数据    dim = length(data) #数组维数,若不设置,则为一维数组    dimnames #维度的名称  )

接下来创建一个3*4的数组和一个2*3*2的数组作为示例:

x <- array(1:12,dim = c(3,4))  y <- array(1:12,dim = c(2,3,2))

R语言数据结构之矩阵、数组与数据框详解

R语言数据结构之矩阵、数组与数据框详解

所得结果如上图,左图很容易看懂,不做过多解释。右图根据 y <- array(1:12,dim = c(2,3,2))所得,其中c(2,3,2)的最后一个数字是指右图中,,1和,,2,可以将其理解为层数,第一层由1,2,3,4,5,6构成,两行三列。

2.2访问数组的数据:

与向量相同,使用x[xidx,yidx,zidx…nidx]访问数组数据:

访问y第二层中第二行第二列的数据,结果如下:

R语言数据结构之矩阵、数组与数据框详解

三、数据框

3.1数据框的创建:

数据框类似于表格,例如上面矩阵运算中所展示的表格。可以使用data.frame()创建数据框

data.frame(    #以value或name = value的形式展现的数据值  )

可能有点看不懂,没有关系,我们来看几个例子就可以了。创建一个名为名人的数据框:

名人 <-data.frame(美女 = c("西施","王昭君","貂蝉"),名将 = c("荆轲","要离","岳飞"))

R语言数据结构之矩阵、数组与数据框详解

R语言数据结构之矩阵、数组与数据框详解

x <- 1:5  y <- 6:10  z <- 11:15  d <- data.frame(x,y,z)

运行结果如上图,数据框会将你输入的数据按列排布,做出一个类似表格的形式。在数据框中也可以使用rownames(),colnames()等函数,下面以rownames做一个示例: 

 rownames(d) <- c("three","four","two","five","one")

R语言数据结构之矩阵、数组与数据框详解

数据框的数据访问于上述差不多,大家可以自己尝试一下。

总结

到此这篇关于r语言数据结构之矩阵、数组与数据框的文章就介绍到这了,更多相关r语言矩阵、数组与数据框内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!

需要了解更多c/c++开发分享R语言数据结构之矩阵、数组与数据框详解,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/1120463.html

(0)
上一篇 2022年7月12日
下一篇 2022年7月12日

精彩推荐