R语言机器学习入门——01

166 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情

数据结构

数值型:数值可以用于直接结算,加减乘除

字符串型:可以进行连接、转换、提取等

逻辑型:或真或假

日期型等

向量

数值型:数值可以用于直接结算,加减乘除

字符串型:可以进行连接、转换、提取等

逻辑型:或真或假

日期型等

向量索引

1、正(负)整数索引

length()

可以使用length()访问向量的个数,访问向量x的第一个值可以使用x[1];还可以使用负整数进行索引,表示访问除了这一行的其他行数据,比如不访问一个三行数据的第二行,可以使用x[-2]

2、逻辑向量索引

以上代码是只输出对应逻辑值为真的值。

还可以进行逻辑判断,例如:

对于字符串向量,我们可以使用一些特殊的操作符进行逻辑判断,例如 “%in%”

也可以用于索引:

3、名称索引

我们可以使用 names() 函数为向量的每一个元素添加名称:

然后即可以通过每一个元素的names来访问它的值:

添加向量:

可以直接通过索引来添加向量;

也可以一次性添加多个元素:

在向量中插入一个新元素:

可以使用 append() 函数,以下代码表示,在x这个向量的5这个元素后面插入一个99的元素:

如果** after=0** 则代表在向量的头部插入数据:

删除向量:

如果想删除整个向量,可以直接使用 rm() 函数,如果想删除某个函数,可以直接采用负整数索引的方式:

其实就是重新生成一个新的向量,替换掉原来的向量

修改向量值:直接将需要修改的值索引出来,然后给它赋一个新的值就可以了。

但是注意这里是数值型的向量,我们不能赋值给字符串,会把整个向量变成字符型向量

向量运算

向量是R中最基本的数据结构。

向量运算是对应位置的元素进行运算,其中长的向量的个数必须是短向量个数的整数倍。

Ceiling()不小于x的最小整数,floor()函数不大于x的最大整数:

Trunc()函数返回整数部分:

Round()函数用于进行四舍五入,digits用来表示返回的位数

Signif()保留小数部分有效数字

Which()函数可以返回索引值,也就是元素所在的位置

矩阵与数组

矩阵是一个按照长方阵列排列的复数或实数集合,向量是一维的,矩阵是二维的,需要有行和列。在R软件中,矩阵是有维数的向量,这里的矩阵元素可以是数值型,字符性改革或者是逻辑型,但是每个元素必须都拥有相同的模式,这个和向量一致。

我们可以通过matrix()函数来创建矩阵

行数和列数的分配要满足分配的条件,如果只给出一个行或者是一个列,R会自动进行分配,可以通过byrow来指定按行还是按列进行排列:

byrow = T 表明按照行匹配,反之

Dinames参数可以通过一个列表,指定矩阵行和列的名字:

第一个参数是行名,第二个参数是列名

Dim()函数可以显示向量的维数,可以通过dim()函数来对向量添加维数,从而构建矩阵

默认是按照列匹配

下面介绍一下数组这个数据结构。R中的数组其实就是多维的矩阵,我们重新定义一个向量x:

dim(x)<-c(2,2,5) 意思是3维 2x2x5的数组

只要向dim()函数传入三个参数,就可以构建三位数组,数组还可以使用array()函数来创建:

还可以创建字符型和逻辑型的数组,那么创建了矩阵,要如何访问矩阵的数据呢,下面是矩阵的索引:

首先可以通过矩阵下标进行访问,m[1,2]表示访问第一行第二列的元素

也可以一次访问多个元素,

比如访问第一行的第二、三、四列元素,访问第二、三行的第一列元素。

输出矩阵的一个子集:

如果下标只写一个数字,就是单独访问行或者列:

也可以同样使用负索引进行访问,还可以输入对应的行列名称进行访问:

矩阵中的四则运算需要行和列一致,与向量一致,可以使用colsums()、rowsums()、rowmeans()等函数对整个矩阵进行计算也可以进行矩阵的乘法:

分别是矩阵的内积(对应元素相乘)以及矩阵的外积