因为最近做的研究与神经网络有关,所以这一段时间都在用
python
,主要是keras
以及可视化的一些工作。想一想自己用R
已经三年多了,也写过一些package
,于是最近又逛了一下Rstudio的网站,总结一下新的收获
新知识获取
如果要了解Rstudio最新的一些消息,推荐经常逛一逛blog还是很有好处的,可以了解新发布的包以及一些重要包的更新,一般都会在blog里面有,例如这次看,就发现了一些之前没有用过的包DT
,learnr
,blogdown
和reticulate
等,这些新包扩展了R的应用
R语言写博客
之前一直都想自己开一个博客,也申请好了域名,租了一个服务器。之前一直都想着用wordpress搭建一个,但是一直都很懒,没有搭建。前几天逛论坛的时候,突然发现了blogdown
这个包,直接用Rmarkdown
写博客。相比一般的markdown
,Rmarkdown
更加适合写技术类的文章,比如说作图,表格呈现以及交互性的插件,这些都是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
就可以了。
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.
shiny
shiny
是R里面可以直接写前端和后端的应用,可以说是非常方便,而且shiny
的应用可以嵌入到网页当中,shiny
可以使用非常简单的代码写完一个应用,之后可以考虑将自己博士期间的工作写成一个shiny的应用,放到组内的服务器上,让后面进组的同学也可以使用我之前做的工作。关于shiny
我之前也写过一些总结,具体查看这里,shiny具体使用教程
plumber
当一段R
代码写完,你又很想将它转换成为网页应用的时候,plumber
就可以起到作用了,只需要简单的几行代码,就可以转成网页应用,只要发送一个网页请求就可以得到最后的结果。
R语言数据处理和可视化
我觉得R
语言中的pipeline
是一个非常酷的想法,从数据获取,数据清洗到数据可视化只需要不停的用%>%
就可以,可以说是非常方便的。这些包都可以在这里找到。数据获取包括readr
,readxl
等包,数据可视化当然是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
上参加一下比赛,历练一下自己,加油吧,少年!