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. [WPF系列]-数据邦定之DataTemplate 对分层数据的支持

    到目前为止,我们仅讨论如何绑定和显示单个集合. 某些时候,您要绑定的集合包含其他集合. HierarchicalDataTemplate 类专用于 HeaderedItemsControl 类型以显示 ...

  2. 更改计算机名称后 导致 sql server 2008 R2 用windows账户不能附加的错误解决办法

    出错背景:本人想用sql server 2008 R2 附加sql server 2005数据库出现拒绝访问,后查询网站得知,要用windows身份验证方式登录进去附加, 然后我就用windows身份 ...

  3. OAuth协议——PHP第三方登陆协议

    慕课网Badguy老师的良心课程! 总会有那种什么都不想干的时候,但现在的日子又不这么允许个人的放纵,我一般就只有这几个选择:看课程视频,看书,看小说..好像还是有可以做的事情.其中,看课程视频有点无 ...

  4. Eclipse调试常用技巧

    1. 条件断点 断点大家都比较熟悉,在Eclipse Java 编辑区的行头双击就会得到一个断点,代码会运行到此处时停止. 条件断点,顾名思义就是一个有一定条件的断点,只有满足了用户设置的条件,代码才 ...

  5. UI自动化,你值得拥有

    去年春节联欢晚会,为了那张“敬业福”,全家都卯足了劲儿“咻一咻”,连节目都顾不上看了.当时我就想,要是能自动化该多好,不停点击屏幕,屏幕不疼手还疼呢,何况还不好分心,生怕错过了“敬业福”.玩“咻一咻” ...

  6. 错误提示:LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt 的解决方法

    最近在win7 系统下,打算利用 cmake 生成项目文件,然后用vs2010进行编译.但是在cmake的时候出现错误弹窗:

  7. usb驱动开发之大结局

    从usb总线的那个match函数usb_device_match()开始到现在,遇到了设备,遇到了设备驱动,遇到了接口,也遇到了接口驱动,期间还多次遇到usb_device_match(),又多次与它 ...

  8. 【转】NuGet.org 无法访问的解决方法

    打开Nuget,发现又出问题了:未能解析此远程名称:’nuget.org’. 在浏览器中输入 http://nuget.org 会发现是无法打开的. 在cmd命令行里输入: nslookup nuge ...

  9. js 字符串转换数字

    方法主要有三种转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对 ...

  10. HTML5 移动浏览器支持