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

361 阅读3分钟

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

缺失数据

缺失数据的分类:

在R中,用NA代表缺失值,NA是不可用的意思,用于存储缺失信息,这里缺失值NA表示没有,但注意不一定就是0,NA是不知道是多少,也可能是0,也可能是任何值,缺失值和值为零是完全不同的。

但是有时候NA值的缺失会导致数据计算出现问题:

所以此时我们需要剔除NA值,可以通过一些函数的na.rm选项参数剔除

但是计算平均值时是以50个总数来计算还是49个总数来计算呢,我们来验证一下这个问题:

说明是将NA值剔除之后求平均值。

可以在前期数据处理的时候就检查数据集是否存在缺失值,来进行逻辑测试,我们来测试一下VIM包中的sleep数据集:

使用is.na()函数来测试一下数据集

可以使用colsums()和rowsums()计算每一行的缺失值数目


如果想去除掉数据集中的缺失值,形成一个新的函数,则可以使用na.omit()函数:

使用na.omit()函数处理数据框,通常是直接删除缺失的行或者列

但是这样处理有一个问题,就是当缺失值超过一半的时候,会对分析结果造成很大的影响,所以R中有很多处理缺失值的办法:

其他缺失数据:

缺失数据NaN,代表不可能的值

Inf表示无穷,分为正无穷Inf和负无穷Inf,代表无穷大或者无穷小。

字符串

nchar()函数可以用来统计字符串的长度:

Length() 返回向量中元素的个数,而nchar返回每个元素字符串的个数:

Paste()函数用于粘贴字符串,将多个字符串合并为一个,默认使用空格分割,也可以通过sep选项参数来设置分隔符

向量与字符串的连接是向量和字符串分别连接,例如:

Substr()函数用于提取字符串,函数的参数分别是一个原始的字符串,一个起始点和一个结束点,返回值是起始点和结束点之间的字符串。

然后使用toupper()函数便可以将单词大写,tolower()可以转换为小写。


Grep()函数可以用于查找字符串:

表示与第二个位置上的字符串匹配上了,如果fixed参数为F,则表示支持正则表达式,那么‘A+’表示匹配一到正无穷个字符A,那么“AC”也会入选。

Match()函数可以进行字符串匹配

Strsplit()可进行字符串的分割,这个函数需要两个参数,字符串和分割符:

但是这个函数返回的是一个列表,而不是向量。

日期与时间

时间序列分析:

对时间序列的描述

利用前面的结果进行预测

“ts”是time series的简称,代表时间序列数据。

在R中,日期数据别单独归为一个date类,我们可以使用sys.date()函数查看当前系统的时间

在R中可以使用as.date()函数数据转换为日期数据,使用format选项参数决定外观。

比如哪部分作为年,哪部分作为月

也可以使用seq()函数创建连续的时间点:

要使用as.date()系统才会当做时间数据进行处理

使用ts()函数可以把向量转化为时间序列数据: