在R中整理数据

来源:互联网 时间:2017-06-01

原始数据一般分散杂乱,并含有缺失和错误值,因此在进行数据分析前首先要对数据进行整理。

一、首先,了解原始数据的结构。

可使用如下函数(归属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)  ---gather

2.变量同时存在行和列中 ---spread

3.多个变量位于同一列   ---seperate

4.单个观测值位于多张数据表中,多个类型单元位于同张数据表 ---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)    检测字符串中是否存在某个pattern

str_replace(string, pattern, replacement)   替代字符串中匹配的pattern

na.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() 函数来确认异常值(或极端值)

 

相关阅读:
Top