Coursera-Getting and Cleaning Data-Week2-课程笔记
Coursera-Getting and Cleaning Data-Week2
Saturday, January 17, 2015
课程概述
week2主要是介绍从各个来源读取数据。包括MySql,HDF5,webpage,API等,范围还蛮广。
因为工作和日常中没有直接到数据库拿数据的权限,所以暂时只是走马观花看了一遍,然后做quiz时再看一遍,留个概念即可。
下面的笔记因为主要是我自己留着以后做备查的,所以可能有些地方有点泄题。强烈建议想要好好学习,认真学习的人,优先先看一下视频,然后跟着quiz以及讨论区的内容来做。
认真学习才是王道。
按照Quiz知识点来的笔记
1.API
视频里介绍了用httr包读取twitter数据,在httr Demo页有其读取twitter, facebook, google,github等的demo代码。
在使用httr包前,都要到相应网站去注册API,获得访问权限,httr里访问数据的方式基本都是oauth,在用oauth_app定义api权限后,用GET即可获得相应数据。(视频里还涉及到jsonlite包的使用,包括toJSON还有fromJSON)
补充一下,1月份里,英文区那个很nice的David助教有一个帖子Quiz 2 Question 1 advice and discussion详细总结了在使用httr包时会遇到的问题。被第一题难倒的不在少数。爱总结的TA是个好人!
library(httr)
library(jsonlite)
2.SQL in R
加载sqldf包,按照论坛里的讨论是:sqldf的好处就是对一个很大的数据集,你可以用sqldf("select *** from *** where ***")
来快速筛选数据,而且使用的还是我们熟悉的sql语句,省去了再次学习的成本。如果工作中较少用到MySQL的话,了解一下sqldf就好了。drv=“SQLite”
3.HTML读取
继续从TA的帖子开始,按照提示,视频里介绍了至少三个读取html数据的方法,readLines读取,XML包读取,httr包(GET)读取。
readLines读取,用url方式读取html页,并导入readLines里。记得读取完毕后要选择close这个网页。读出来的数据是源代码格式。为character。
url<-url("一个地址")
con<-readLines(url)
close(url)
#记得关掉链接啊
#readLines里面需要用url()来引入地址,这里拿到的是character格式的数据
XML包读取,用htmlTreeParse和xpathSApply读取数据
library(XML)
url1<-"一个html地址"
html<-htmlTreeParse(url1,useInternalNodes=T)
xpathSApply(html,"//tilte",xmlValue) 用来取各个结构内的数据
httr包读取,这个可以用于要密码认证的连接。200表示读取成功,404表示读取失败,或许需要密码
library(httr)
html2<-GET(url1)
#html2里存储的是一个展示读取了多少数据的信息,以及200/404等连接信息。之后要用content来返回,譬如下面,返回一个纯文本格式(比XML包还要乱),再使用htmlParse可以获得跟XML包htmlTreeParse一样的效果。适合结构型的数据
content2<-content(html2,as="text")
goodformat<-htmlParse(content2,asText=TRUE)
最后呢,论坛上有人找到了stackoverflow上的这个帖子How to read the nth line of a Parsed html in R
4.Fixed width format
for格式详解介绍了for格式是什么东西。看了一下感觉就是科学界喜欢用的一种文件格式吧,windows的记事本可以打开没问题。
这里的重点是,对于一些数据标题不在第一行,然后各列宽度一样的数据,要怎样去读取他们的成绩。按助教在Quiz 2 Question 5 advice and discussion的讲法,这里关键是对skip以及width的掌握。不过有人吐槽说,这样子人工观察,还不如excel直接处理呢。恩,平日里我们遇到这样规整又不整齐的数据的几率还是比较小的,但是作为扩展知识面,还是有了解的必要。
download.file("一个fided width的文本文件地址")
library(utils)
datautils<-read.fwf("文件地址",skip=要跳过的行,widths=每列之间间隔的数量)
杂感
Getting and Cleaning Data的教授讲课虽然有点对着PPT念,但是本来数据抓取就是一个很广的内容,第二周学下来,还是有效地扩宽了我的知识面。以及,课程的quiz设计的还是很有意思的。且TA会在讨论区里总结之前学员的问题,认真研读的话,能比较深入地了解quiz设计原理,以及进阶内容。我觉得这是这门课的一个精华。
另外,网络爬虫其实是目前互联网很火的一个话题。以前见过国内某知名电商自行开发的一套爬虫系统,它可以即时监控竞争对手的商品信息,有促销跟着促销,有降价跟着降价,保证自家大部分商品价格在一个比较适中的范围内,以避免流量流失。而关于个人爬虫,还有个网站叫数据堂,会专门发布一些爬虫出来的数据源。如果学会网页端抓取数据的话,初学者就不用担心没有数据练手了。
关于R抓取网页信息,记录以下几个网址等以后备查
不知不觉中自己博客里也写了那么多跟R相关的东西了呢。自学这个课后,自己做过的包括:用R设计一个抽奖排号的程序,用R去计算公式,弄时间序列等等。但是未来的路还有好长,加油加油。
最后最后补充一点,饶了我吧,看了半天发现httr包又是Hadley Wickham开发的!!reshape2!dplyr!tidyr!ggplot2! 话说我到底是在学习R还是在学习如何崇拜Hadley大神啊!
Coursera-Getting and Cleaning Data-Week2-课程笔记的更多相关文章
- Data Visualization 课程 笔记1
对数据可视化比较有兴趣,因此最近在看coursera上伊利诺伊大学香槟分校的数据可视化课程,做了一些笔记. 1. 定义 Data visualization is a high bandwidth c ...
- Data visualization 课程 笔记3
Learn how humans work to create a more effective computer interface 三种reasoning的方式 Deductive Reason ...
- Data Visualization 课程 笔记2
2-D Graphics vector graphics : the graphics that used for drawing shapes with vertices, strokes and ...
- 操作系统学习笔记----进程/线程模型----Coursera课程笔记
操作系统学习笔记----进程/线程模型----Coursera课程笔记 进程/线程模型 0. 概述 0.1 进程模型 多道程序设计 进程的概念.进程控制块 进程状态及转换.进程队列 进程控制----进 ...
- 学习笔记(四): Representation:Feature Engineering/Qualities of Good Features/Cleaning Data/Feature Sets
目录 Representation Feature Engineering Mapping Raw Data to Features Mapping numeric values Mapping ca ...
- Linux内核分析课程笔记(一)
linux内核分析课程笔记(一) 冯诺依曼体系结构 冯诺依曼体系结构实际上就是存储程序计算机. 从两个层面来讲: 从硬件的角度来看,冯诺依曼体系结构逻辑上可以抽象成CPU和内存,通过总线相连.CPU上 ...
- Andrew Ng机器学习课程笔记--汇总
笔记总结,各章节主要内容已总结在标题之中 Andrew Ng机器学习课程笔记–week1(机器学习简介&线性回归模型) Andrew Ng机器学习课程笔记--week2(多元线性回归& ...
- Andrew 机器学习课程笔记
Andrew 机器学习课程笔记 完成 Andrew 的课程结束至今已有一段时间,课程介绍深入浅出,很好的解释了模型的基本原理以及应用.在我看来这是个很好的入门视频,他老人家现在又出了一门 deep l ...
- 深度学习课程笔记(十五)Recurrent Neural Network
深度学习课程笔记(十五)Recurrent Neural Network 2018-08-07 18:55:12 This video tutorial can be found from: Yout ...
- 深度学习课程笔记(十四)深度强化学习 --- Proximal Policy Optimization (PPO)
深度学习课程笔记(十四)深度强化学习 --- Proximal Policy Optimization (PPO) 2018-07-17 16:54:51 Reference: https://b ...
随机推荐
- Entity Framework 中使用SQL Server全文索引(Full Text Search)
GitHub:https://github.com/fissoft/Fissoft.EntityFramework.Fts EntityFramework中原来使用全文索引有些麻烦,需要使用DbCon ...
- 【读书笔记《Bootstrap 实战》】3.优化站点资源、完成响应式图片、让传送带支持手势
A.优化站点资源 速度很重要.用户很关心.我们的站点必须加载够快,否则用户就会走人.SEO 也很重要.我们的站点必须加载够快,否者搜索排名就会下降. 明白了这样,我们就来清点一下 [Bootstrap ...
- AR(增强现实) 知识篇
增强现实(Augmented Reality,简称AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动.这种技术估计由1990年 ...
- 3357: [Usaco2004]等差数列
3357: [Usaco2004]等差数列 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 321 Solved: 153[Submit][Statu ...
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 大型软件系统客户端数据同步的问题解决
作为一个完整的整体信息化解决方案需要有足够强大的各种功能,这些功能相对独立,又互相依存.当有需要这样的功能时可以随时拿出来用,适当修改一下就可以满足要求.只有这样才能快速开发各种信息化系统,才能满足各 ...
- Swift语言学习
因为想要学Mac os x编程,中文教材太少了,看了很多厉害的英文教材,很多都是swift语言的了,所以决定先要大体学一下swift语言. 学习一门语言,第一件事看swift官方文档,这里附上Coco ...
- Golang友团无闻Go语言Web基础视频教程
教程内容:GO语言资料Golang友团无闻Go语言编程基础Golang友团无闻Go语言Web基础教程 Go语言Web基础教程列表:[Go Web基础]12Go Web 扩展学习.mp4[Go Web基 ...
- image的加载事件(onload)和加载状态(complete)
之前做过这样一个需求,要让商家页的商家图片按照图片外面box的大小等比例缩放.之前的想法是在页面中先输出图片的src,然后在页面底部初始化js,然后在js中写相应的可以使图片按照box的大小等比例缩放 ...
- 微信小程序之知乎日报
上一次的<微信小程序之小豆瓣图书>制作了一个图书的查询功能,只是简单地应用到了网络请求,其他大多数小程序应有的知识.而本次的示例是知乎日报,功能点比较多,页面也比上次复杂了许多.在我编写这 ...
- IPv4组播通信原理
2011-05-08 21:21:14 标签:组播 vin_do,vin_do学习笔记,笔记 休闲 职场 摘自网络,感谢原作者 摘要: 本文试图成为学习TCP/IP网络组播技术的入门材料.文中介绍了组 ...