探索R的新世界

因为最近做的研究与神经网络有关,所以这一段时间都在用python,主要是keras以及可视化的一些工作。想一想自己用R已经三年多了,也写过一些package,于是最近又逛了一下Rstudio的网站,总结一下新的收获

新知识获取

如果要了解Rstudio最新的一些消息,推荐经常逛一逛blog还是很有好处的,可以了解新发布的包以及一些重要包的更新,一般都会在blog里面有,例如这次看,就发现了一些之前没有用过的包DTlearnrblogdownreticulate等,这些新包扩展了R的应用

R语言写博客

之前一直都想自己开一个博客,也申请好了域名,租了一个服务器。之前一直都想着用wordpress搭建一个,但是一直都很懒,没有搭建。前几天逛论坛的时候,突然发现了blogdown这个包,直接用Rmarkdown写博客。相比一般的markdownRmarkdown更加适合写技术类的文章,比如说作图,表格呈现以及交互性的插件,这些都是Rmarkdown的优势。关于blogdown具体介绍点击这里。我看了一下搭建起来还是很简单,而且有很多主题可以选,Rmarkdown所用框架是从Hugo,在创建的时候就可以选择主题。刚开始大家都会选择一个比较酷炫的主题,我也是,但是感觉blogdown使用复杂主题还是会有一些问题,所以搭建博客的时候最好从简单的主题选择,毕竟主要是记录自己的学习,的确是You will forget what you see and listen, but you can remember what you write,所以要督促自己多写一点总结。

创建了blogdown之后,将public文件夹下面的文件上传,就可以访问了,我用别人主题搭建了一个,效果还是可以的,但是写blog还是有点问题,因为它的blog并不是在post文件夹下面。大家可以访问以下,看一下效果,我的博客。看来改天要抛弃,建立自己博客小站,努力写一东西,我这个人习惯不好,喜欢看很多东西和做很多东西,不太喜欢写各种总结,其实到后面自己都忘记以前干的事情了,所以总结还是非常有必要的。

貌似blogdown支持控件会出现一些问题,比如说有一些控件的js文件互补相容,这个时候就需要用widgetframe来避免这些问题

Rmarkdown

Rmarkdown还是一个非常好用的,可以输出类型各种文件,只要更改output就可以了

  • output: html_document:输出为html文件
  • output: pdf_document:输出为pdf文件
  • output: word_document:输出为word文件
  • output: ioslides_presentation:输出为演讲PPT(是html文件)
  • output: ioslides_presentation ; runtime: shiny:输出为带shiny应用演讲PPT,可以进行交互,还是非常酷。
  • learnr:使用learnr可以让出现交互式的教学网页,非常适合直接用于展示

Rmarkdown控件

Rmarkdown有许多动态控件,这些控件大多数都是一些优秀的js文件转化的,我之前只用过Leaflet,更多具体控件可以访问htmlwidget,这些控件的确是非常优秀,非常适合那些需要交互式的展示。

Website

可以直接来写静态的网页,只需要一个'_site.yml'配置文件以及index.Rmd文件,执行rmarkdown::render_site就可以了。

Websites

flexdashboard

flexdashboard非常适合需要可视化大量信息的时候,可以分块进行展示,每个大标题下又分成不同的小标题。这就是多级标题如何区分

  • Each Level 1 Header (#) begins a new page in the dashboard.
  • Each Level 2 Header (##) begins a new column.
  • Each Level 3 Header (###) begins a new box.
flexdashboard

shiny

shiny是R里面可以直接写前端和后端的应用,可以说是非常方便,而且shiny的应用可以嵌入到网页当中,shiny可以使用非常简单的代码写完一个应用,之后可以考虑将自己博士期间的工作写成一个shiny的应用,放到组内的服务器上,让后面进组的同学也可以使用我之前做的工作。关于shiny我之前也写过一些总结,具体查看这里,shiny具体使用教程

plumber

当一段R代码写完,你又很想将它转换成为网页应用的时候,plumber就可以起到作用了,只需要简单的几行代码,就可以转成网页应用,只要发送一个网页请求就可以得到最后的结果。

R语言数据处理和可视化

我觉得R语言中的pipeline是一个非常酷的想法,从数据获取,数据清洗到数据可视化只需要不停的用%>%就可以,可以说是非常方便的。这些包都可以在这里找到。数据获取包括readrreadxl等包,数据可视化当然是ggplot2,这些包我也写过一些总结,不过是用Rmarkdown写的,之后可以从个人的博客中贴出。

R语言与大数据和深度学习

实际上R语言在2016年的时候就开始支持spark了,这里用sparklyr,感觉使用起来非常的方便,包里面也有许多现成的机器学习算法,可以直接使用。sparklyr也支持pipeline,就是用大数据工具处理之后的数据可以直接进行可视化。
R语言之前有很多包都支持深度学习,类似于kerasR这些包,但是一直都没有支持tensorflow,R社区的人应该也不是很甘心,深度学习没有R什么事情,所以R开始支持tensorflow,具体文档可以查看tensorflow

R语言与数据库

Rstudio升级之后,出现了Connections的菜单栏,可以直接在Rstudio里连接数据库,这也是特别方便了,除此之后R里面出现的pool包使得数据库连接管理更加便捷,也更方便直接建立shiny的应用。具体数据库应用可以查看这里

Final

总而言之,R还是可以干许多非常酷的事情,目前已经掌握很熟练了,所以尽快在kaggle上参加一下比赛,历练一下自己,加油吧,少年!

你可能感兴趣的:(探索R的新世界)