Getting and Cleaning Data (Week 2)学习要点
1)访问MySQL
第一步: 安装MySQL
先根据所使用的操作系统安装合适的MySQL,所有的操作步骤都详细的列在以下官方网址上了。
http://dev.mysql.com/doc/refman/5.6/en/installing.html
第二步:安装RMySQL包。
使用以下命令进行安装。
install.packages("RMySQL")
接下来要安装MySQL的开发包,即libmysqlclient-dev包,否则会出现如下错误。
安装libmysqlclient-dev包的方法很简单,使用如下命令即可。
sudo apt-get install libmysqlclient-dev
安装时不用担心是否需要指定32位或者64位版本的开发包,从安装过程可以看出两种版本的都会安装(参考下图)。
如果一切顺利,再安装完RMySQL包之后会有如下提示信息。
2)解答Quiz2的一些提示
问题1:寻找日期
解答这个问题之前应该仔细阅读以下示例脚本:https://github.com/hadley/httr/blob/master/demo/oauth2-github.r,在注释中包含了很多信息。
同时,在https://github.com/settings/applications注册APP程序时,重点关注如下位置的操作。
上图中是我操作完成的结果,第一次注册时可以选择右上角按钮或者“Register new application”的链接。
最后,请确认httpuv这个包已经正确安装。否则,在确认授权的步骤时,即执行如下命令:
github_token <- oauth2.0_token(oauth_endpoints("github"), myapp)
浏览器无法正确跳转到授权页面。
获取数据后,建议用JSON数据的访问方式整理数据,假设content(req)的结果存储在raw_data中,则建议使用fromJSON(toJSON(raw_data))的方式将结果转换为data.frame。
使用View可以轻松查看结果并确定datasharing对应的记录(注意name这一列)是在第几行,之后就可以轻松找到对应的日期(注意created_at这列).
问题2:SQL语句
这一题唯一要注意的是不需要同时载入sqldf和RMySQL这两个包,实际上此处不需要RMySQL这个包。
问题3:SQL语句
选项3和4中只有一个是正确的,将sqldf包载入后,使用对应的语句测试一下就知道哪个是正确的。
问题4:获取html数据
需要用的命令都在“Reading from The Web”这一讲里面,主要是url()和readLines函数 。需要注意的是,在使用完打开的连接之后,应该使用close()及时关闭连接。
问题5:读取.FOR文件
这一题是读取固定宽度格式的文件,并且计算第4列的和。建议用趁手的文本编辑工具(我用的是Editplus)先将每行的空格和“-”符号全部替换为制表符。然后使用read.fwf()这个函数进行操作。唯一的操作技巧就是一定要跳过制表符所在的列,即使用如下命令。
w <- c(-1, 9, -1, 4, -1, 3, -1, 4, -1, 3, -1, 4, -1, 3, -1, 4, -1, 3)
生成widths参数对应的向量。-1的含义是跳过此宽度读取下一个,1表示跳过的字符数为1个。
求和就很简单了,直接sum()就可以。