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

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

可使用如下函数(归属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. MVC5 DB FIRST

    跟着师父一直在做codefirst的开发,最近有个新需求,就是需要人家的数据库,然后来开发,现在出现问题了.整理如下 目前有个现成的我们之前的codefirst的工程代码,我记得师父说过,根据数据库生 ...

  2. spring(一) IOC讲解

    spring基本就两个核心内容,IOC和AOP.把这两个学会了基本上就会用了. --WH 一.什么是IOC? IOC:控制反转,通俗点讲,将对象的创建权交给spring,我们需要new对象,则由spr ...

  3. linux最小安装

    (1)系统安装类型选择及自定义额外包组 进入如图2-28所示界面.上半部分是系统定制的不同的系统安装类型选择项,默认是“Desktop”,这里我们选择“Minimal”,即最小化安装,下半部分是在上面 ...

  4. js求三位数的和

    例如输入508就输出5+0+8的和13: <!DOCTYPE html> <html lang="en"> <head> <meta ch ...

  5. Java中一个方法只被一个线程调用一次

    1.想在运行时抛出异常,终止方法的运行 private final Set<Long> THREADS = new HashSet<>(); public void someM ...

  6. jquery的冒泡事件event.stopPropagation()

    js中的冒泡事件与事件监听 冒泡事件 js中“冒泡事件”并不是能实际使用的花哨技巧,它是一种对js事件执行顺序的机制,“冒泡算法”在编程里是一个经典问题,冒泡算法里面的冒泡应该 说是交换更加准确:js ...

  7. 关于ajax post请求跨域问题的解决心得

    最近啊,公司有个项目,需要做一个手机端APP的后台管理系统.所以用到了度文本编辑框,经过了好好一番周折,终于弄好了,带到上线的时候发现啊,只能使用ip去访问网页的时候上能穿图片他不会报跨域的问题,而使 ...

  8. UPS不间断电源网络功能介绍

    UPS不间断电源网络功能介绍 随着联网技术的善及,用户又向UPS提出了更高的要求:ups电源应具有无人値守的功铅酸蓄电池能,不但具有自检的功能,还应具有联网功能,在网上UPS不间断电源可以随时观察up ...

  9. struts2 之 ServletAPI

    1. 在struts2中有两种方式使用SercletAPI,一种解耦方式,一种耦合方式. 2. 解耦方式就是使用ActionContext 来实现,是完全解耦 servletAPI. ActionCo ...

  10. 【Shell】使用Shell脚本发布项目

    第一次写Shell脚本,没经验,是直接写呢,还是要走流程( ̄▽ ̄)~* ---------------------------------------------------------------- ...