博客总目录,记录学习R与数据分析的一切:http://www.cnblogs.com/weibaar/p/4507801.html

 -------

经过周末一个半天的努力,终于把这次的Assignment3做出来,然后做完Quiz4,顺利结束R Programming这门课程。

对这门课的综合吐槽就是,Roger老师的github头像好帅,动态视频更帅,视频内容还算充足,但远远不足以应付assignment。Assignment设计一个比一个精巧,难度一个比一个大,没有足够的耐性以及一定的基础,还真的很难独自应付完R Programming这门课。如果不是我买了付费证书,以及工作中确实需要R,估计学着学着就废掉了吧……

但是话说回来,这门课的assignment设计的还是颇为精巧的。

Swirl,

这个是个包,带我们了解R的大部分内容。调用library(swirl), swirl()即可。R初学者请一定学习学习!设计极好!

Assignment1,

带我们初步了解了循环,以及数据读取和rbind。精华语句是以下两段(代码已修改,以避免泄题)。在这里,初步涉及了函数的编写,循环的使用,以及数据框类型的先定义和rbind语句。同时在某个函数里通过threhold的引用,引入了if else结构。

https://github.com/derekfranks/practice_assignment/blob/master/practice_assignment.rmd

上面的github教程是我见过最好的指导教程,没有它,assignment1就跪了。

 files_list<-list.files(directory,full.names=TRUE)#read file list & cycle reading data

dat<-data.frame()for (i in id){id=inew1=sum(read.csv(files_list[i]))dat<-rbind(dat,new1)}

Assignment2,

这个的精华在于对词法作用域的介绍,并介绍了函数缓存值,虚拟函数,函数内变量,以及<<-的使用。不过从代码的角度来说,示例的实际应用意义不大。倒不如quiz里涉及的东西全面。但好好消化以后,会发现对词法作用域有了较深的理解,在之后用sapply, lapply, tapply等函数时,也比较敢于编程了。

        set <- function(y){x<<-ym<<-NULLsetSolve <- function(solve) m<<-solve

Assignment3,这道题由3个部分组成,除了第二部分外,剩下两部分都要耗时4-5个小时思考……不愧是压轴的assignment,做到让人近似崩溃。但是这个也是对R知识应用最综合的题目。前面两部分要用到的函数,以及方法,在本次assignment3里都被拎出来

整理一下:

1)数据框,我们经常会用split按照某个变量拆分数据框,这样会出来一系列由data.frame组合的list。

如果用data[i],只会拿到一堆list,只有用data[[i]]才能拿到原本的data.frame格式。这是为什么以下代码可以生效的原因。

data_split<-split(data_complete,data_complete$State)new1<-cbind(data_order[[i]],rank)

2)数据框筛选,我们要么用==直接获得等于某个数值的数据库,要么我们可以利用!any或者all函数来判断,某个值是否在数据框里,如果不在,弹出错误信息。但是注意,这里由于循环补齐的原因,num,outcome以单个字符/数字为佳。向量要用其他方法。

final<-r[r$rank==num,]if (!any(colname==outcome)){stop("invalid outcome") 

3)关于numeric函数,如果一个数据里有一堆ta,1,2,3,4, not avilalbe,使用as.numeric可以快速的把非数值函数转化为NA。这样才可以加入计算。(对于取整,用as.integer效率奇佳)

 var<-as.numeric(list[colname==outcome,1])

4)利用colnames(x)<-c(ddd,ddd)可以给数据库快速命名

 colnames(final)<-c("hospital","state")

5)关于排序,先获得split的函数后,使用lapply可以快速对数据进行排序。然后用rbind,[[i]]又可以快速结合回来

data_order<-lapply(data_split,function(x) x[order(x[,3],x[,1]),])

6)关于1:length。之前在这里考死了很多回。后来发现,如果nrow()-1<-0,NA的话,用2:nrow-1会返回一个2,1,0向量。这样,在循环补齐时就会报错。而且是报很多错。然后if else, else一定要接在}后面,另起一行的话,R也很容易报错<--论良好的函数书写习惯的重要性。

 if (nrow(xx[[i]])==1) {rank=c("a")} else {if (nrow(data_order[[i]])==2){rank=c("a","d")}else {rank=c("a",2:(nrow(data_order[[i]])-1),"d")}}

综上,这是我在做assignment3里被踩过的若干个坑……

感谢我终于出来了

谢谢JHU贡献的这么有操作意义的R Programming的课程,接下来打算继续跟着学习cleanning data,听说assignment也很难ε(罒ω罒)з。。。。给跪

最后补充一下

当全身心投入一门课的学习时,会觉得时间过得很快,也很充实。之后不会再迷茫了。数据分析,其实就是多学,多练,多思考,多做码农。庆幸我开始的还不算太晚。

以及,因为这个月太沉迷于R,被同事吐槽说,一整天扑在编程还有R上,怪不得你没有男朋友……单身狗内牛满面……

博客总目录,记录学习R与数据分析的一切:http://www.cnblogs.com/weibaar/p/4507801.html

 

转载于:https://www.cnblogs.com/weibaar/p/4192501.html

Coursera系列-R Programming-Final Week-Assignment3 总结相关推荐

  1. Coursera系列-R Programming第三周-词法作用域

    完成R Programming第三周 这周作业有点绕,更多地是通过一个缓存逆矩阵的案例,向我们示范[词法作用域 Lexical Scopping]的功效.但是作业里给出的函数有点绕口,花费了我们蛮多心 ...

  2. R语言swirl教程(R Programming)13——Simulation

    R语言swirl教程(R Programming)13--Simulation | One of the great advantages of using a statistical program ...

  3. R语言swirl教程(R Programming)10——lapply and sapply

    R语言swirl教程(R Programming)10--lapply and sapply | In this lesson, you'll learn how to use lapply() an ...

  4. R语言swirl教程(R Programming)11——vapply and tapply

    R语言swirl教程(R Programming)11--vapply and tapply | In the last lesson, you learned about the two most ...

  5. 【直通华为HCNA/HCNP系列R篇-12】BGP路由配置与管理-王达-专题视频课程

    [直通华为HCNA/HCNP系列R篇-12]BGP路由配置与管理-20623人已学习 课程介绍         本课程以笔者编写.由华为公司指定作为ICT认证培训教材的<华为路由器学习指南> ...

  6. 【直通华为HCNA/HCNP系列R篇-10】OSPF路由配置与管理-王达-专题视频课程

    [直通华为HCNA/HCNP系列R篇-10]OSPF路由配置与管理-13051人已学习 课程介绍         本课程是按照由笔者编写.由华为公司指定作为ICT认证培训教材的<华为路由器学习指 ...

  7. 【直通华为HCNA/HCNP系列R篇7】可靠性功能原理及配置与管理-王达-专题视频课程...

    [直通华为HCNA/HCNP系列R篇7]可靠性功能原理及配置与管理-8892人已学习 课程介绍         本课程以华为指定的ICT认证教材<华为路由器学习指南>为主线,全面.系统.深 ...

  8. 【直通华为HCNA/HCNP系列R篇8】VRRP技术原理及配置与管理-王达-专题视频课程

    [直通华为HCNA/HCNP系列R篇8]VRRP技术原理及配置与管理-10465人已学习 课程介绍         本课程以笔者编写,由华为公司指定作为ICT认证培训教材--<华为路由器学习指南 ...

  9. 视频教程-【直通华为HCNA/HCNP系列R篇3】路由器接口配置与管理-华为认证

    [直通华为HCNA/HCNP系列R篇3]路由器接口配置与管理 国内IT图书作者,网络技术讲师,华为授权讲师.共著有近60部计算机网络著作,新代表作:<Cisco/H3C交换机|路由器" ...

最新文章

  1. r - 求平均成绩_学霸秘籍:小学数学知识点例题讲解 — 平均数问题
  2. 魏鹏机器人_痴迷农业科技,他发明智能分拣机器人给胡萝卜照CT
  3. c语言 把字符串转换为变量名_如何将抓取下来的unicode字符串转换为中文
  4. C++设计模式-桥接模式
  5. php面试题之五——PHP综合应用(高级部分)
  6. addcslashes与stripcslashes
  7. 摇一摇根据城市位置推荐酒店
  8. 哨兵系列卫星_美国宇航局 quot;哨兵6quot;海平面与气候观测卫星发射任务将于11月进行...
  9. 蓝桥杯python试题_Python爬取蓝桥杯真题讲解课程
  10. CentOS 使用shc加密脚本
  11. 如何正确安装驱动程序
  12. 【noi.ac #1997】A. 制胡窜
  13. Win11聚焦锁屏壁纸不更新了?Win11锁屏聚焦不更换解决教程
  14. 《奇葩说》撞题郭敬明,面对“死亡”,AI竟然赚足眼泪和流量?
  15. ICPC 2019 徐州网络赛
  16. 大前端养成之路:学一点MongoDB(一)
  17. 让你的短信应用迎接Android 4.4(KitKat)
  18. Kali入侵Windows主机
  19. 华为交换机路由器例行维护(巡检)方法参考
  20. gitee仓库的密钥配置

热门文章

  1. 谈谈网页产品该如何评估密码强度
  2. WireShark导出H265/HEVC码流,使用h265_export.lua插件
  3. 目前市场上比较好的oa办公系统企业管理软件有哪些?
  4. win10台式机一根网线连接笔记本wifi网络
  5. Win11的两个实用技巧系列之u盘怎么设置密码?
  6. 教程分享 | 如何获取港口网(全球船舶点和路径)的数据
  7. Python 极简插件系统 pluggy 源码剖析
  8. 【OCR技术系列一】光学字符识别技术介绍
  9. python网络数据采集学习笔记-前言
  10. 28335 warning: Data is being written to auto-generated file TMS32F28035_DEMO.i10