加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

十个超级好用的R语言编程技巧,一般人绝不知道!

发布时间:2019-07-22 17:17:44 所属栏目:移动互联 来源:读芯术
导读:因为R说话生态体系内容繁复并在不绝成长,人们每每轻易忽视一些切实有效的常识。这些能力每每很是简朴,但对付完成事变有很大的辅佐。 本文将先容十个可以或许让R说话编程事变越发轻松的小常识。 1. switch函数 在if语句基于其他变量值来选定某个值时,switch
副问题[/!--empirenews.page--]

因为R说话生态体系内容繁复并在不绝成长,人们每每轻易忽视一些切实有效的常识。这些能力每每很是简朴,但对付完成事变有很大的辅佐。

本文将先容十个可以或许让R说话编程事变越发轻松的小常识。

十个超等好用的R说话编程能力,一样平常人毫不知道!

1. switch函数

在if语句基于其他变量值来选定某个值时,switch可以很利便地收缩if语句。这个能力在编程中必要按照之前的决议加载一个差异的数据集时很是有效。好比说,此刻有一个变量“animal”,编程必要按照animal是dog,cat照旧rabbit来加载一个差异的数据集。操作switch函数,可以输入以下代码:

  1. data <-read.csv( 
  2.   switch(animal, 
  3.          "dog" ="dogdata.csv", 
  4.          "cat" ="catdata.csv", 
  5.          "rabbit" ="rabbitdata.csv") 

当必要按照一个或多个输入菜单选择在Shiny应用措施中加载差异的数据集乃至情形文件时,这个能力很是有效。

2. RStudio快捷键

和R hack软件体系对比,RStudio IDE(IntegratedDevelopment Environment,集成开拓情形)中更常用到这一类能力。这些常用呼吁的快捷键很是有效,可以节减许多敲键盘的时刻。好比Ctrl+Shift+M(用于管道操纵符%>%)和Alt+-(用于赋值运算符<-)两个快捷键。想要相识更多利便好用的快捷键,可以在RStudio中输入Atl+Shift+K查察。

3. flexdashboard包

假如想要建设一个能快速启动和高效运行的Shiny仪表盘,可以选择flexdashboard。这个包提供简朴的HTML快捷方法,可以简化侧边栏建设和构建队列展示。尚有超等便捷的问题栏,可以把应用措施编译到差异的页面,以及把图标和链接放入Github代码和邮件地点等。

因为flexdashboard包基于RMarkdown举办操纵,它应承把全部应用措施放在一个Rmd文件中,而不必像shinydashboard那样把措施分成独立的处事器和UI(User Interface,用户界面)文件。在必要建设一个简朴的仪表盘初始版本并将其并入更高级的计划版本时,flexdashboard包异常好用。操作flexdashboard包可以在一个小时内启动和运行仪表盘。

4. R Shiny中的req函数和validate函数

R Shiny经常让人瓦解,出格是在弹出一样平常性错误提示而措施员又一头雾水的时辰。跟着Shiny的成长,越来越多的验证函数和测试函数插手了Shiny,辅佐措施员更好地诊断和提示错误。

当操尽兴况中没有其他变量时,req()函数可以悄无声气地阻止一个操纵的产生,而且不弹堕落误提示。措施员因而可以在此前的操纵中有前提地展示UI元件。以第一个小能力中提到的例子为例:

  1. output$go_button<- shiny::renderUI({ 
  2.   # only display button if an animal input hasbeen chosen 
  3.   shiny::req(input$animal) 
  4.   # display button 
  5.   shiny::actionButton("go", 
  6.                      paste("Conduct", input$animal, "analysis!") 
  7.   ) 
  8. }) 

validate()函数则可以在输出功效前举办搜查。假如某个前提没有满意,特定的错误提示会弹出。好比说当用户上传了错误的文件时:

  1. # get csv inputfile 
  2. inFile <-input$file1 
  3. data <-inFile$datapath 
  4. # render table onlyif it is dogs 
  5. shiny::renderTable({ 
  6.   # check that it is the dog file, not cats orrabbits 
  7.   shiny::validate( 
  8.     need("Dog Name" %in%colnames(data)), 
  9.     "Dog Name column not found - did youload the right file?" 
  10.   ) 
  11.   data 
  12. }) 

5. 操作体系情形保密全部凭据

假如在分享代码时,配置了数据库登录凭据或相同的配置,可以操作体系情形,防备凭据被上传到Github或其他处所造成代码泄漏。可以把这些凭据作为定名情形变量放在R session中。好比:

  1. Sys.setenv( 
  2.   DSN = "database_name", 
  3.   UID = "User ID", 
  4.   PASS = "Password" 

这些情形变量可以用来登录分享的剧本。好比:

  1. db <-DBI::dbConnect( 
  2.   drv = odbc::odbc(), 
  3.   dsn = Sys.getenv("DSN"), 
  4.   uid = Sys.getenv("UID"), 
  5.   pwd = Sys.getenv("PASS") 

越发轻盈的是,假如频仍行使某些凭据,可以在操纵体系中把它们配置为情形变量。云云,用R说话体系事变时,便无需在代码中输入就可以随时行使这些凭据。(留意有凭据权限的人。)

6. styler自动天生tidyverse气魄威风凛凛

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读