原始数据一般分散杂乱,并含有缺失和错误值,因此在进行数据分析前首先要对数据进行整理。
一、首先,了解原始数据的结构。
可使用如下函数(归属baseR)来查看数据结构:
class(dataobject) 查看数据对象的类别
dim(dataobject) 查看数据的维度
names(dataobject) 查看列名
str(dataobject) 查看数据概要
glimpse(dataobject) 查看数据概要
二、将数据变得整洁可使用下列函数(归属package: tidyr)整理数据:1. gather(data, key, value, -col ) 将多个列收紧成关键列值,宽数据变成长数据。2. spread(data, key, value) 将关键列值扩展成多个列,长数据变成宽数据。3. separate(data, col, into, sep = “”) 将一列分成多列。4. unite(data, col, …, sep = “”) 将多列合成一列。 杂乱数据的特征和对应处理函数:1.列名是值(value)而不是变量(variable) —gather2.变量同时存在行和列中 —spread3.多个变量位于同一列 —seperate4.单个观测值位于多张数据表中,多个类型单元位于同张数据表 —seperate+unite 三、准备用于分析的数据1.数据的类别如下,可调用class()查看数据的类别,也可使用as.numeric()、as.factor()等函数来转换类别。
character
numeric
integer
factor
logical
2.对日期和时间的处理
需装载的package:lubridate
调用的函数:ymd_hms(), ymd()等。 ymd_hms 对应:年月日_时分秒
例子:
> dmy(“17 Sep 2015”)
[1] “2015-09-17”
3.字符串的处理
需装载的package:library(stringr)
调用的函数:
str_pad(string, width, side = c(“left”, “right”, “both”), pad = ” “) 填充字符串str_trim(string) 清除字符串首尾空格str_detect(string, pattern) 检测字符串中是否存在某个patternstr_replace(string, pattern, replacement) 替代字符串中匹配的patternna.omit(df) 移除有缺失值的行complete.cases(df) 查看没有缺失值的行 下面两个字符处理函数在baseR中toupper(string) 转换成大写tolower(string) 转换成小写 4. 缺失值和特殊值(miss and special value)在R中,缺失值一般用NA表示。特殊值有 Inf(无穷值)、NaN(not a number)。查看数据中是否有NA: is.na(data)any(is.na(data))查看数据中没有缺失值的行:complete.cases(data)在数据中移除有缺失值的行:na.omit(data) 5.处理数据中的异常值和明显错误常用summary() 和 hist() 函数来确认异常值(或极端值)