Coursera-Getting and Cleaning Data-Week3

Wednesday, February 04, 2015

好久不写笔记了,年底略忙。。

Getting and Cleaning Data第三周其实没什么好说的,一个quiz,一个project,加一个swirl。

基本上swirl已经把第三周的内容都概括进去了。就是dplyr, tidyr以及lubridate包的学习和使用。其中dplyr专注于选择/筛选,tidyr关注于数据重塑型,二lubridate是我目前接触过的最好用的R中处理时间的包。

这三个包都是Hadley Wickam开发的,秉承了这系列包简洁,实用,好理解的特点。dplyr包尤其像sql语句,select, group_by什么的,有sql基础的人理解起来不会很难。

该系列swirl安装代码如下:

library(swirl)
install_from_swirl("Getting and Cleaning Data")

关于dplyr,swirl本身已经写得很详尽了。不过开发者有自己的一个总结。我最开始是在一个人的微博里看到这张图的。然后追本索源发现,它原载于Rstudio官网Cheatsheets网页。里面还有markdown/Shiny包的快捷应用图像,值得初学者打印一整张下来好好学习。

dplyr+tidyr

总结一下dplyr+tidyr的应用,就是:

1)筛选/选择数据: select, filter。其中select选择列,filter添加筛选条件(类似于SQL中的where).select里有如select(iris,contains/ends_with/everthing等快速筛选用法。这个在上文所提的Cheatsheets里有,不再综述。

2)整合数据,类似于reshape2:gather(从宽变窄),spread(从窄变宽),可以快速改变数据结构。

3)数据排序/命名:arrange(行排序),rename(重命名列)

4)添加删除变量,多表查询:mutate(列,类似于cbind),transmute(几列并行),join, left_join等。

同时,因为他们系出同门,我们可以用%>%来简化代码,避免重复输入。

lubridate

关于lubridate包,常用的为:

1)指定格式的数据输出,如ymd("20110604")mdy("06-04-2011")等,只要指定好ymdhms的顺序,R可以协助识别许多数据

2)常见数据的处理,如second(arrive),wday(arrive),并可添加时区(tz)

3)计算区间,如interval(arrive,leave,tz="Pacific/Auckland"),

需要注意的是,这个包的使用涉及了R时区的概念。如果你是中文系统,发现你的monday, sunday被系统自动替换成周一周日等中文字符的话,请看时区设置Sys.setlocale。 我是windows系统,所以改成英文的话是Sys.setlocale("LC_TIME","English")。这个在接下来的画图课里有一定的用处。

基本上过了一遍swirl后,quiz不是大问题。

Project

关于project,中英文一起看吧,题目写得有点简略了,但是重点是探索的过程。

我们那个超级好人超级NICE的TA David Hood在讨论区里曾发过一张图给看不懂题目的人解释一下数据结构。因为TA都在讨论区发过了,所以我觉得可以共享一下。

这里需要注意,老师满强调tidy data的概念。不管是宽的数据还是短的数据,只要符合tidy data规则,都算tidy data。各位有兴趣可以回去啃啃Hadley的那个PDF。

之前跟Q群的人讨论这个project时,看到有四种处理该project某一问的方法。包括简洁的group_by+summarize_each,或者绕一个圈的gather+group_by+summarize+spread组合,还有用reshape2的melt+dcsat组合,以及R programming里面着重介绍的循环+apply/lapply组合。有兴趣的可以自行尝试~~

在数据分析里,数据处理是一个苦差事。有人说一个数据挖掘项目,可能数据处理会占用60-70%甚至更多的时间,建模什么的,一旦数据处理好了,就很快,因为常用且经过时间验证的可靠模型也就那么几种。同时这个数据处理,也是了解业务的一个重要途径。所以这门课还是不可或缺的。我的博客

Coursera-Getting and Cleaning Data-Week3-dplyr+tidyr+lubridate的组合拳的更多相关文章

  1. Cleaning Data in R

    目录 R 中清洗数据 常见三种查看数据的函数 Exploring raw data 使用dplyr包里面的glimpse函数查看数据结构 \(提取指定元素 ```{r} # Histogram of ...

  2. 【Python学习笔记】Coursera课程《Python Data Structures》 密歇根大学 Charles Severance——Week6 Tuple课堂笔记

    Coursera课程<Python Data Structures> 密歇根大学 Charles Severance Week6 Tuple 10 Tuples 10.1 Tuples A ...

  3. 学习笔记(四): Representation:Feature Engineering/Qualities of Good Features/Cleaning Data/Feature Sets

    目录 Representation Feature Engineering Mapping Raw Data to Features Mapping numeric values Mapping ca ...

  4. Joining Data with dplyr in R

    目录 inner_join Joining three tables left_join right-join full_join semi- and anti-join Stack Overflow ...

  5. Coursera课程笔记----C++程序设计----Week3

    类和对象(Week 3) 内联成员函数和重载成员函数 内联成员函数 inline + 成员函数 整个函数题出现在类定义内部 class B{ inline void func1(); //方式1 vo ...

  6. Coursera-Getting and Cleaning Data-week4-R语言中的正则表达式以及文本处理

    博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html Thursday, January 29, 2015 补上第四周笔记,以及本次课程总结. 第四周 ...

  7. The dplyr package has been updated with new data manipulation commands for filters, joins and set operations.(转)

    dplyr 0.4.0 January 9, 2015 in Uncategorized I’m very pleased to announce that dplyr 0.4.0 is now av ...

  8. data cleaning

    Cleaning data in Python   Table of Contents Set up environments Data analysis packages in Python Cle ...

  9. Coursera-Getting and Cleaning Data-week1-课程笔记

    博客总目录,记录学习R与数据分析的一切:http://www.cnblogs.com/weibaar/p/4507801.html -- Sunday, January 11, 2015 课程概述 G ...

随机推荐

  1. UVA11478 Halum [差分约束系统]

    https://vjudge.net/problem/UVA-11478 给定一个有向图,每条边都有一个权值.每次你可以选择一个结点v和一个整数d,把所有以v为终点的边的权值减小d,把所有以v为起点的 ...

  2. UVA&&POJ离散概率与数学期望入门练习[4]

    POJ3869 Headshot 题意:给出左轮手枪的子弹序列,打了一枪没子弹,要使下一枪也没子弹概率最大应该rotate还是shoot 条件概率,|00|/(|00|+|01|)和|0|/n谁大的问 ...

  3. 使用using释放资源

    using关键字 using 关键字可以用来导命名空间,与java中的import类似. 我使用using的地方 using(SqlConnection con=new SplConnection(c ...

  4. 用C#调用C++DLL(x64),总是提示找不到DLL

    用C#调用自己写的C++ DLL(x64),总是提示找不到DLL,调试可以,发布release老是提示找不到DLL(dll文件确定存在) 原因:Visual C++的DLL分发方式没选:调试默认选择: ...

  5. reveal

    链接 界面调试工具Reveal Reveal使用教程 iOS分析UI利器——Reveal及简单破解方法 Reveal使用步骤和 破解Revealapp的试用时间限制 end

  6. Linux下安装VMware Tools 的方法

    1.按下 CTRL + ALT  组合键,进入主操作系统,点击VMware虚拟机菜单下的安装虚拟机工具子菜单. 菜单:VM->Install VMware tools....(虚拟机->安 ...

  7. Sqlite创建增删改查

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  8. css 补漏

    1.box-sizing: width(宽) + padding(内边距) + border(边框) = 元素实际宽度    height(高) + padding(内边距) + border(边框) ...

  9. url 中 # ? & 的作用

    1. # 10年9月,twitter改版.一个显著变化,就是URL加入了"#!"符号.比如,改版前的用户主页网址为http://twitter.com/username改版后,就变 ...

  10. 链队列java实现

    public class LinkHeap<T> { class Node<T> { T data; Node<T> next; Node(T data) { th ...