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

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

可使用如下函数(归属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. JAVA源码剖析(容器篇)HashMap解析(JDK7)

    Map集合: HashMap底层结构示意图: HashMap是一个“链表散列”,其底层是一个数组,数组里面的每一项都是一条单链表. 数组和链表中每一项存的都是一“Entry对象”,该对象内部拥有key ...

  2. 细心!SQL语句进行运算时使用字符串时缺失精度的细节!

    昨天没有更新,特此来说明下原因,昨天回到家时已经甚晚,正逢公司这几天项目比较紧张(bug多,赶需求,看着bug单齐刷刷的转过来,心都颤抖了一下),没有及时准备素材,今天又加了一天班(现在还在公司,偷个 ...

  3. 我是如何处理大并发量订单处理的 KafKa部署总结

    今天要介绍的是消息中间件KafKa,应该说是一个很牛的中间件吧,背靠Apache 与很多有名的中间件搭配起来用效果更好哦 ,为什么不用RabbitMQ,因为公司需要它. 网上已经有很多怎么用和用到哪的 ...

  4. 项目的ip地址更改,用git从远程提取代码出现错误,提示为 network error connection timed out

    昨天公司的ip进行了修改,在今天从远程提取代码的过程中提示network error connection timed out错误,从网上看了一下解决方法 1:打开项目文件夹,点击查看 2:勾选隐藏的 ...

  5. C#中的DateTime是值类型还是引用类型

    近期遇到了DateTime到底是值类型还是引用类型的疑惑,顺势较深入地了解一下DateTime相关的内容 结论:DateTime是值类型,因为DateTime是结构体,而结构体继承自Syste.Val ...

  6. UVa/数组和字符串习题集

    UVa-272. Description: TEX is a typesetting language developed by Donald Knuth. It takes source text ...

  7. ESLint系列:ESLint入门安装及简单配置

    1.eslint需要依赖node.js环境,在配置之前需要安装好node.js; 2.npm install eslint --save-dev 或 npm install eslint --save ...

  8. spring boot summer快速开发框架之《一、数据库操作》

    快速开发演示: 目录结构: 本例采用的mysql自带的sakila示例库,脚本DumpAddress.sql. 步骤:1. 修改application.properties中数据库连接2. 在App. ...

  9. php写流程管理

    流程控制即某个人发起一个流程,通过一层一层审核,通过后,完成整个流程,若有一层审核未通过,中断整个流程.即结束! 比如请假流程: 某一员工发起一个请假流程,那么这个流程的节点人员即他的上级,上上级,上 ...

  10. php object 对象系统

    php object 对象系统 概述 本节内容仅谈论对象系统内容, 对于相关内容并不做更深一步的扩展, 相关扩展的内容会在后续补充 object 对象属于 zval 结构的一种形式 php 将所有执行 ...