终于忙完毕业设计了,非常开心的是获得了毕业设计的一等奖(Top 1%),给自己的大学划上了完美的句号。


在我的上一篇中提到了向量和矩阵,我这里便不加赘述,它们分别是储存同类类型数据的一维结构和二维结构。其他具体的应用可以参考上一篇。这次我们来看一下R语言中的其他数据结构,数组和数据框

我们现在看一下数组,按照递推关系,大家也不难猜到,当我们多稳的数据的时候(一维,二维均可),我们需要采用数组结构,需要注意的是,此时储存的数据结构也必须是相同的。为了方便我们方便表示数组的维度,我们这时候需要引进一个概念——维度向量(dimension vector)。按照标准的定义,就是此向量是一个由正整数所构成的向量,若其长度为n,那么该数组就为n维数组。这个是向量中每一个元素,代表了我们数组各维的长度。在R语言中一般采用dim表示。

那么我们如何创造数组呢?我们利用array函数来创造,一般格式为array(data,dim,dimnames)。我先来解释一下这几个的含义再举例子。这里面的data指的是数组中的元素,dim是维度向量,在这里指的是各个维度的长度,假如在代码中省略该参数,这就说明该数组是一维的。而dimnames是顾名思义,是对dim进行命名,当然也是可以省略的。此时,我来列举一个例子:




如何查看R语言和Rstudion安装在哪 如何查看r语言版本_数据结构


从我们的示例中也可以看出,向量中的值被赋予给数组的时候,我们遵循的是“主列原则”。先把一个的一列中的每行排好,再以此类推。

那么如果我们储存的数据为不同种类型的呢,此时该怎么办?在这种情况下,数据框便显得尤为重要了。

数据框是可以将不同种类型的数据放在一起的数据结构。我们一般应用数据框来储存“关系表”,也即存在不同种类型数据又相互联系的数据。在此之中,每列存放的数据类型必须相同,而每列的行数必须相同。

我们使用data.frame函数来创造数据框,即data.frame(c1,c2,c3,...)。其中的“ci”代表列向量,即储存在数据框中各列的数据,这些列向量可以为任何种类的向量,不过自身必须相同。每一列的名字可以由names函数来去命名。我们来举一个例子:


如何查看R语言和Rstudion安装在哪 如何查看r语言版本_数据_02


我们此时便完成了一个小型数据框的创建,一般来说,我们创建小型的数据框这样子就OK了,一般大型的数据框是可以从文件中直接导入的,这个我们放在以后的篇章去说。我们先继续来看小型数据框的类型。那么如何在数据框中去选定元素呢?可以使用如矩阵中的下标记号,亦可直接指定列名。我们继续用上面的例子进行示范。

利用下标符号,如果是提出某一个元素:


如何查看R语言和Rstudion安装在哪 如何查看r语言版本_数组_03


如果是提出范围元素:


如何查看R语言和Rstudion安装在哪 如何查看r语言版本_找不到r低版本_04


利用制定列名:


如何查看R语言和Rstudion安装在哪 如何查看r语言版本_数据结构_05


值得说明的是,$符号经常用于数据框中,表示提取某一列的元素,举例如下:


如何查看R语言和Rstudion安装在哪 如何查看r语言版本_数据_06


如何查看R语言和Rstudion安装在哪 如何查看r语言版本_数组_07


同时结合table函数,我们还可以得到相应两列之间的关系,举例如下:


如何查看R语言和Rstudion安装在哪 如何查看r语言版本_数组_08


但是这样的方法多少有点麻烦,因为每次都得把标题打上去,所以我们此时采用一个简单的方法,即用attach函数。我们来看一下现在怎么用。

这个attach函数意思是讲数据框添加到R的搜索路径中,以定位这个数据框。与之相对的,有detach函数,这个是把数据框从R的搜索路径中移除。这两个被称作是成对函数。对于这个事情,我们来举例说明:

首先假如没有用attach函数,我们有


如何查看R语言和Rstudion安装在哪 如何查看r语言版本_找不到r低版本_09


用了attach函数,我们有


如何查看R语言和Rstudion安装在哪 如何查看r语言版本_数组_10


大家可以看到,当我将我创建的数据框加入到路径之中的时候,我再使用别的函数,则就可以不必再打函数名称和$了。而detach函数则是直接移除数据框。

但是大家此时需要注意一点,就是这个smart函数,当我们attach它了以后,就不可以随便更改,这样会冲突。

另外一种方法是用with函数取节省标题,同时也可以避免冲突问题。这个with函数,就是让数据框独立于作用环境之外。我举例说明:


如何查看R语言和Rstudion安装在哪 如何查看r语言版本_数据_11


此时我利用了R自带的数据框mtcars。大家可以看到,这时候再去寻找是找不到的。不过这个“找不到”,仅仅局限于在大括号内的函数。这便是with的局限性。

最后说一句,为了区分数据集中的不同个体和标识度的清晰,在创建数据框时,我们可以采用rowname函数。这时候变可以突出哪项最重要了。

大家先看下没有用到rowname函数的时候,制作的数据框:


如何查看R语言和Rstudion安装在哪 如何查看r语言版本_数据_02


如果使用了,则可成为:


如何查看R语言和Rstudion安装在哪 如何查看r语言版本_数据结构_13


今天就说这么多,我以后的更新速度会加快,感谢大家的关注。喜欢我的可以关注点赞一下~