开启掘金成长之旅!这是我参与「掘金日新计划 · 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()函数可以把向量转化为时间序列数据: