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

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

可使用如下函数(归属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() 函数来确认异常值(或极端值)
 

在R中整理数据的更多相关文章

  1. R中的数据重塑函数

    1.去除重复数据 函数:duplicated(x, incomparables = FALSE, MARGIN = 1,fromLast = FALSE, ...),返回一个布尔值向量,重复数据的第一 ...

  2. R中使用rvest爬取数据小试

    总结R中使用 xpath 和 css selectors 获取标签内容(xpath功能强大,而CSS选择器通常语法比较简洁,运行速度更快些) 例:抓取下面标签的内容: <h3 class=&qu ...

  3. R中利用SQL语言读取数据框(sqldf库的使用)

    熟悉MySQL的朋友可以使用sqldf来操作数据框 # 引入sqldf库(sqldf) library(sqldf) # 释放RMySQL库的加载(针对sqldf报错) #detach("p ...

  4. (数据科学学习手札22)主成分分析法在Python与R中的基本功能实现

    上一篇中我们详细介绍推导了主成分分析法的原理,并基于Python通过自编函数实现了挑选主成分的过程,而在Python与R中都有比较成熟的主成分分析函数,本篇我们就对这些方法进行介绍: R 在R的基础函 ...

  5. (数据科学学习手札19)R中基本统计分析技巧总结

    在获取数据,并且完成数据的清洗之后,首要的事就是对整个数据集进行探索性的研究,这个过程中会利用到各种描述性统计量和推断性统计量来初探变量间和变量内部的基本关系,本篇笔者便基于R,对一些常用的数据探索方 ...

  6. R中读取EXCEL 数据的方法

    最近初学R语言,在R语言读入EXCEL数据格式文件的问题上遇到了困难,经过在网上搜索解决了这一问题,下面归纳几种方法,供大家分享: 第一:R中读取excel文件中的数据的路径: 假定在您的电脑有一个e ...

  7. R 中数据导入

    R语言数据导入  数据导入 1.保存和加载R的数据(与R.data的交互:save()函数和load()函数) a <- 1:10 save(a, file = "data/dumDa ...

  8. SQL中CRUD C——create 添加数据 R——read 读取数据 U——update 修改数据 D——delete 删除数据

    在SQL server中对数据库的操作: 删除表:drop table 表名修改表:alter table 表名 添加列add 列名 列类型alter table 表名 drop column 列名 ...

  9. 用R语言提取数据框中日期对应年份(列表转矩阵)

    用R语言提取数据框中日期对应年份(列表转矩阵) 在数据处理中常会遇到要对数据框中的时间做聚类处理,如从"%m/%d/%Y"中提取年份. 对应操作为:拆分成列表——列表转矩阵——利用 ...

随机推荐

  1. 【G】开源的分布式部署解决方案文档 - 使用手册

    G.系列导航 [G]开源的分布式部署解决方案 - 导航 已知问题 导航没有联动 因为权限只是做了基础的登录校验,考虑到后面导航要跟权限关联上暂时是写死的. 只有部分界面使用了Vue.js 因为刚开始没 ...

  2. django出现__init__() got an unexpected keyword argument 'mimetype‘ 问题解决

    这种问题好多新手按照djangobook学习的时候应该都遇到过,是因为这是老的django的写法,新的django已经升级改变了很多东西. 处理方法如下: I think you are not us ...

  3. 浅谈Java的开放封闭原则

    写在前面 最近, 接手了一个新业务,系统的架构可圈可点.但有些地方让人望而生畏,有些代码臃肿难以维护,让人不敢恭维.于是,结合了Java的开放封闭原则,对其中一部分代码进行了重构优化. 先来看下以前系 ...

  4. 老李推荐:第2章1节《MonkeyRunner源码剖析》了解你的测试对象: NotePad应用简介

    老李推荐:第2章1节<MonkeyRunner源码剖析>了解你的测试对象: NotePad应用简介   本书脚本相关的示例常会用到Android SDK自带的NotePad这个应用,所以这 ...

  5. SystemClock官方简介

    public final class SystemClock extends Object java.lang.Object    ↳ android.os.SystemClock Class Ove ...

  6. AngularJS1.X学习笔记3-内置模板指令

    前面学习了数据绑定指令,现在开始学习内置模板指令.看起来有点多,目测比较好理解.OK!开始! 一.ng-repeat 1.基本用法 <!DOCTYPE html> <html lan ...

  7. 【WCF】错误处理(四):一刀切——IErrorHandler

    前面几篇烂文中所介绍到的错误方式,都是在操作协定的实现代码中抛出 FaultException 或者带泛型参数的detail方案,有些时候,错误的处理方法比较相似,可是要每个操作协定去处理,似乎也太麻 ...

  8. 1094:零起点学算法01——第一个程序Hello World!

    Description 题目很简单 输出"Hello World!"(不含引号),并换行. Input 没有输入 Output 输出"Hello World!" ...

  9. Android M以上运行时权限(Google官方出品)

    转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6690152.html 网上运行时权限的例子.Demo无计其数,但是和Google官方出品的比起来,都显得很 ...

  10. Spring Boot 学习笔记--整合Redis

    1.新建Spring Boot项目 添加spring-boot-starter-data-redis依赖 <dependency> <groupId>org.springfra ...