成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

十個超級好用的R語言編程技巧,一般人絕不知道!

開發 開發工具
由于R語言生態系統內容繁復并在不斷發展,人們往往容易忽視一些切實有用的知識。本文將介紹十個能夠讓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風格

界面上有很多代碼,然而它們并不像你想要的那樣整潔,你也沒有時間進行多線編輯。不要擔心。styler包有多個函數可以自動編輯代碼,生成tidyverse風格。只需要簡單地運行styler::style file(),它就會完成大部分(并不是所有)的工作。

7. 參數化R Markdown文件

當你分析了一大堆關于狗的事實并寫完一個滿意的R Markdown文件時,你被告知,“我還是對貓更感興趣”。這要怎么辦呢?不要擔心。如果參數化了R Markdown文件,只要通過一個命令,就可以自動生成一份相似的關于貓的報告。

具體來說,需要在R Markdown文件的YAML標頭中設置參數,并給每個參數賦值。比如:

  1. --- 
  2. title: "AnimalAnalysis" 
  3. author: "KeithMcNulty" 
  4. date: "21March 2019" 
  5. output: 
  6.   html_document: 
  7.     code_folding: "hide" 
  8. params: 
  9.   animal_name: 
  10.     value: Dog 
  11.     choices: 
  12.       - Dog 
  13.       - Cat 
  14.       - Rabbit 
  15.   years_of_study: 
  16.     input: slider 
  17.     min: 2000 
  18.     max: 2019 
  19.     step: 1 
  20.     round: 1 
  21.     sep: '' 
  22.     value: [2010, 2017] 
  23. -- 

然后只需把這些變量用R語言,如params$animal_name和params$years_of_study寫進文件中就可以了。如果正常轉換文件,那么每個參數就會被設置成默認值。但是,如果在轉換文件選擇參數時,選擇了RStudio中Knit下拉列表中的選項(或使用了kint_with_parameters()函數),一個菜單就會出現,來在轉換文件前選擇參數。非常棒!

參數轉換

8. revealjs包

revealjs包內嵌R代碼,可以使用直觀的幻燈片導航菜單在HTML中創建賞心悅目的演示文稿。它可以在R Markdown中使用,并有非常直觀的HTML快捷方式,可以創建具有嵌套和邏輯結構的各種風格的漂亮幻燈片。HTML格式的演示文稿也意味著人們在聽演講時可以繼續使用平板電腦或手機。這真的很方便??梢酝ㄟ^安裝包并在YAML標頭中調用來設置一個revealjs演示文稿。下面展出了使用revealjs做的一個演講的YAML標頭。

  1. --- 
  2. title:"Exporing the Edge of the People Analytics Universe" 
  3. author: "KeithMcNulty" 
  4. output: 
  5.   revealjs::revealjs_presentation: 
  6.     center: yes 
  7.     template: starwars.html 
  8.     theme: black 
  9. date: "HRAnalytics Meetup London - 18 March, 2019" 
  10. resource_files: 
  11. - darth.png 
  12. - deathstar.png 
  13. - hanchewy.png 
  14. - millenium.png 
  15. - r2d2-threepio.png 
  16. - starwars.html 
  17. - starwars.png 
  18. - stormtrooper.png 
  19. --- 
  • 代碼傳送門:https://github.com/keithmcnulty/hr_meetup_london/blob/master/presentation.Rmd
  • 演示文稿傳送門:http://rpubs.com/keithmcnulty/hr_meetup_london

revealjs助你輕而易舉完成線上演示文稿

9. R Shiny中的HTML標簽(以在Shiny應用程序中播放音頻為例)

R Shiny中有110種HTML標簽,可以為各種各樣的HTML命令,如格式化,提供快捷方式。然而,大部分人都沒有充分利用這些標簽。比如創建了一個shiny應用程序,該程序在執行某個任務時需要花費大量的時間。用戶希望在等待完成該任務的過程中,能夠執行其他的多項任務,所以可以利用tags$audio這一標簽,讓該應用程序在完成任務時播放勝利號角來提醒用戶。

10. praise包

praise包具有極其簡單但十分有用的功能,即贊美用戶。盡管這一功能看起來是毫無意義的自我贊賞,它實際上發揮著巨大的作用。它可以在用戶成功地完成一個任務時,對用戶進行贊美或鼓勵。程序員也可以把這個包放在已完成的腳本的最后,在程序順利運行之后享受它帶來的幸福瞬間。

praise包

責任編輯:趙寧寧 來源: 讀芯術
相關推薦

2021-12-14 10:55:14

Python元素數據

2019-04-01 06:37:12

R語言數據分析數據

2018-01-25 09:15:16

機房機柜走線

2021-05-07 22:11:56

寬帶手機運營商

2010-08-23 09:20:11

Linux命令

2025-03-19 09:46:45

2024-09-11 16:21:09

2015-06-24 10:01:47

2023-02-27 15:44:17

Java開發技巧

2019-12-17 15:10:21

Python字符串代碼

2022-03-03 23:56:29

JavaScriptArityAnonymous

2023-12-21 14:40:09

Python編程語言

2013-05-23 11:57:42

以太網千兆網絡以太網發展

2011-08-16 13:15:15

MongoDB

2024-01-30 00:40:10

2009-04-14 21:38:05

LinuxUbuntu技巧

2023-07-07 14:47:46

JavaScript技巧

2013-09-10 11:21:25

移動互聯網移動開發移動市場

2014-04-10 13:15:54

PythonPython技巧

2020-08-11 11:20:49

Linux命令使用技巧
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美极品在线播放 | 久久精品国产免费 | 国产欧美在线播放 | 久久久精品网 | 欧美激情一区二区三级高清视频 | 亚洲欧美日韩电影 | 日韩欧美在线观看 | 国产成人免费 | 国产一区二区三区在线 | 在线观看毛片网站 | 91新视频| 成人午夜免费视频 | 中文字幕11页 | 日韩av资源站 | 一区二区亚洲 | 欧美黄色免费网站 | 在线观看精品视频网站 | 国产精品欧美精品 | 久久久久久蜜桃一区二区 | 精品中文字幕在线观看 | 男女免费在线观看视频 | 欧美精品v国产精品v日韩精品 | www.97国产| 精品久久香蕉国产线看观看亚洲 | 欧美成人a∨高清免费观看 欧美日韩中 | 欧美jizzhd精品欧美巨大免费 | 亚洲精品美女在线观看 | 国产精品区二区三区日本 | 性高湖久久久久久久久 | 成人欧美一区二区三区白人 | av一区二区三区 | 超碰在线久 | 久久久www成人免费精品张筱雨 | 亚洲精品18 | 综合亚洲视频 | 精品入口麻豆88视频 | 在线免费观看日本 | 亚洲精品68久久久一区 | 91精品久久久久久久 | 欧美日韩电影一区 | 一区二区三区四区视频 |