生物醫學工程理論與實踐/R語言介紹
R語言是一種開源命令列程式語言,用於統計計算和圖形繪製[1]。R語言在GNU許可證下免費提供。它在各種領域都有用,例如商業、工業、政府、醫療保健和學術界。R語言最初由Robert Gentleman和Ross Ihaka於1993年開始建立,也被稱為奧克蘭大學統計系的“R&R”[2]。R語言基於S語言,S語言由貝爾實驗室的Rick Becker、John Chambers和Allan Wilks開發,也是S-PLUS系統的基礎。自1997年年中以來,一直有一個核心小組擁有R語言原始碼的寫入許可權。所有更改的完整列表儲存在CRAN上的“R News”檔案中[3]。以下是其中的一些亮點。
| 釋出 | 日期 | 描述 |
|---|---|---|
| 0.16 | 1997.04 | 這是主要由Ihaka和Gentleman開發的最後一個alpha版本。 |
| 0.49 | 1997.04 | 這是最古老的可用原始碼版本,並且在有限數量的類Unix平臺上編譯。CRAN在此日期啟動,擁有3個映象,最初託管了12個包。 |
| 0.60 | 1997.12 | R語言成為GNU專案的正式部分。 |
| 1.0 | 2000.02 | 被開發人員認為足夠穩定。 |
| 1.4 | 2001.12 | 引入了S4方法,第一個Mac OS X版本不久後釋出。 |
| 2.0 | 2004.10 | 引入了延遲載入,它允許以最小的系統記憶體消耗快速載入資料。 |
| 2.1 | 2005.04 | 支援UTF-8編碼,以及針對不同語言的國際化的開始。 |
| 2.11 | 2010.04 | 支援Windows 64位系統。 |
| 2.13 | 2011.04 | 添加了一個新的編譯器函式,該函式允許透過將函式轉換為位元組碼來加快函式速度。 |
| 2.14 | 2011.10 | 為包添加了強制名稱空間。添加了一個新的並行包。 |
| 2.15 | 2012.03 | 新的負載均衡功能。改進了長向量的序列化速度。 |
| 3.0 | 2013.04 | 支援64位系統上的231及更大的數值索引值。 |
R語言是一種解釋型和命令列程式語言。R語言支援使用函式進行程序式程式設計,並且對於某些函式,它還支援使用泛型函式進行面向物件程式設計。R語言可以與C、C++[4]、Java[5]、.NET[6][7][8]和Python等程式語言進行互動。
CRAN,綜合R語言檔案網路是包含R語言原始碼、R語言二進位制檔案、擴充套件包、文件和常見問題的網站網路。CRAN網站的左側選單包含CRAN、關於R語言、軟體和文件。

CRAN 選單在 CRAN映象 中包含 映象、最新訊息、任務檢視 和 搜尋。 CRAN映象 中的“映象”顯示瞭如何根據您的位置和平臺下載和安裝R語言。這裡還包含常見問題解答。 “最新訊息”報告了R語言中的更改、R語言中的錯誤修復,包括新包的公告。“任務檢視”根據特定領域組織R語言包。“搜尋”連結了一些網站,這些網站可以搜尋幫助檔案、手冊和郵件列表存檔。
關於R語言 部分在CRAN中包含 R語言主頁 和 R語言期刊。 R語言主頁 連結到 R語言統計計算專案。R語言期刊 連結到 https://journal.r-project.org。 https://journal.r-project.org 是R語言統計計算專案的開放獲取、同行評審期刊。它刊登了涵蓋可能對R語言使用者或開發人員感興趣的主題的短篇到中篇論文,包括對R語言擴充套件包的簡要介紹、在R語言中程式設計的提示、面向新手的提示以及證明如何在使用R語言的當前興趣領域使用該技術的證據。軟體 部分在 CRAN映象 中包含 R語言原始碼、R語言二進位制檔案、包 和 其他。文件 部分在 CRAN映象 中包含 手冊、常見問題解答 和 貢獻。手冊 由R語言開發核心團隊編輯,可以下載為PDF檔案、EPUB檔案或直接瀏覽為HTML檔案。R語言常見問題解答 是一個通用集合,包含所有平臺使用者的有用資訊。貢獻 包含使用者提供的手冊、教程等。
- 訪問 http://www.r-project.org/。
- 點選下載R語言連結。
- 然後選擇一個離您最近的位置。
- 點選您的作業系統(Linux、MacOS X、Windows)並按照說明進行操作。
如果您是Mac使用者,請下載最新的.dmg檔案並按照說明進行操作。對於“Windows”,請點選“base”,然後點選下載Windows版R語言的連結。(在連結中,當前版本號出現在“R”之後。)當對話方塊開啟時,點選“執行”,應該會出現“安裝嚮導”。一直點選“下一步”直到嚮導完成。
R語言有很多開源圖形使用者介面,包括著名的RStudio。最流行的GUI,RStudio是用C++程式語言編寫的,並使用Qt作為其圖形使用者介面[9]。RStudio的開發始於2010年12月左右[10],第一個公開的BETA版本(v0.92)於2011年2月正式釋出[11]。RStudio有兩種版本:RStudio Desktop,該程式作為常規桌面應用程式在本地執行;以及RStudio Server。

RStudio螢幕包含 編輯器視窗、控制檯視窗、專案視窗 以及 檔案/當前目錄/已載入的包/幫助/檢視器。
R 非常強大,它包含了稱為包的 R 函式、資料和編譯程式碼集合,這些集合以定義良好的格式[12] 儲存。儲存包的目錄稱為庫。R 本身在安裝時包含一組標準包。安裝後,需要將它們載入到會話中才能使用。在 綜合 R 檔案網路 (CRAN)、Bioconductor、Omegahat、Github 和其他儲存庫中,有超過 5,800 個額外的包可用。[13][14]
- R 包的可用性
> browseURL("http://cran.r-project.org/web/views")
- 計算機或伺服器中已安裝的包列表。此列表在 R 編輯器中顯示。
> library()
Warning message:
In library() : library ‘/usr/lib/R/site-library’ contains no packages
- 計算機或伺服器中當前活動的包列表。
> search()
[1] ".GlobalEnv" "tools:rstudio" "package:stats" "package:graphics" "package:grDevices"
[6] "package:utils" "package:datasets" "package:methods" "Autoloads" "package:base"
- 安裝新包
> install.packages("PK")
Installing package into ‘/home/hanjind/R/x86_64-pc-linux-gnu-library/3.0’
(as ‘lib’ is unspecified)
--- Please select a CRAN mirror for use in this session ---
- library("<包名稱>") 載入庫
>library("PK")
- 包的文件可以在編輯器中列出。
> library(help="PK")
Information on package ‘PK’
Description:
Package: PK
Version: 1.3-2
Date: 9. August 2013
Title: Basic Non-Compartmental Pharmacokinetics
Author: Thomas Jaki <jaki.thomas@gmail.com> and Martin J.
Wolfsegger <wolfseggerm@gmx.at>
Maintainer: Thomas Jaki <jaki.thomas@gmail.com>
Depends: R (>= 2.2.1), utils
Description: Estimation of pharmacokinetic parameters using
non-compartmental theory
License: GPL-2
Acknowledgement: Alexander Bauer, John-Philip Lawo and Helmut
Schuetz for extensive testing
Packaged: 2013-08-09 18:53:55 UTC; jack
NeedsCompilation: no
Repository: CRAN
Date/Publication: 2013-08-10 01:05:38
Built: R 3.0.2; ; 2015-08-20 03:23:11 UTC; unix
:
- 升級包
> update.packages()
--- Please select a CRAN mirror for use in this session ---
Warning: package 'XML' in library '/usr/lib/R/site-library' will not be updated
Warning: package 'lattice' in library '/usr/lib/R/library' will not be updated
Warning: package 'Matrix' in library '/usr/lib/R/library' will not be updated
Amelia :
Version 1.7.3 installed in /home/hanjind/R/x86_64-pc-linux-gnu-library/3.0
Version 1.7.4 available at http://cran.utstat.utoronto.ca
Update (y/N/c)? y
curl :
Version 0.9.4 installed in /home/hanjind/R/x86_64-pc-linux-gnu-library/3.0
Version 0.9.6 available at http://cran.utstat.utoronto.ca
Update (y/N/c)? y
digest :
Version 0.6.8 installed in /home/hanjind/R/x86_64-pc-linux-gnu-library/3.0
Version 0.6.9 available at http://cran.utstat.utoronto.ca
- 刪除包
> detach("package:PK",unload=TRUE)
如何輸入資料
[edit | edit source]- 順序資料
> x<-1:15
> x
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- 非順序資料
> y<-c(3,5,7,1,10,15)
- 列表物件
> ls()
匯入/匯出資料
[edit | edit source]平面檔案
[edit | edit source]x <- read.csv("Degas.txt", sep=";",header=FALSE, comment.char="\\")
somedata<-read.table(file="/home/hanjind/Rworkspace/NMR.csv",header=TRUE,sep=",")
write.table(y,"\\home\\hanjind\\Rdata\\y.txt")
資料庫
[edit | edit source]connection<-dbConnect(driver,user,password,host,dbname)
mouse1<-dbSendQuery(connection,"SELECT*FROM AHW")
connection<-dbConnect(driver,user,password,host,dbname)
dbWriteTable(con,"mouse1",mouse1)
R 物件
[edit | edit source]load('FTIRNal.Rdata')
save(Nal,file="New_FTIR.Rdata")
網路
[edit | edit source]example.3 <- read.table("http://www.unt.edu/rss/class/Jon/R_SC/Module3/ExampleData3.txt",header=TRUE, sep="", na.strings="NA", dec=".", strip.white=TRUE)
繪圖/圖片
[edit | edit source]png(filename="your/file/location/name.png",height=295,width=300,bg="white")
plot(fit)
dev.off()
啟動 R 專案或開啟 R 檔案
[edit | edit source]參考文獻
[edit | edit source]- ↑ Fox, John 和 Andersen, Robert (2005 年 1 月)。"使用 R 統計計算環境教授社會統計課程" (PDF)。麥克馬斯特大學社會學系. 檢索於 2006-08-03.
{{cite journal}}: Cite journal requires|journal=(help)CS1 maint: multiple names: authors list (link) - ↑ Gentleman, Robert (2006 年 12 月 9 日)。"Robert Gentleman 個人專業簡介"。存檔於 原文 中,於 2011 年 7 月 23 日. 檢索於 2009-07-20.
- ↑ "R 新聞"。cran.r-project.org. 檢索於 2014-07-03.
- ↑ Eddelbuettel, Dirk; Francois, Romain (2011)。"Rcpp:R 和 C++ 的無縫整合"。統計軟體雜誌。40 (8).
- ↑ Temple Lang, Duncan (2010 年 11 月 6 日)。"從 Java 呼叫 R" (PDF)。Nuiton. 檢索於 2013 年 9 月 18 日.
- ↑ "使用 C# 和 R 建立 GUI,藉助 R.NET".
- ↑ "R.NET 主頁".
- ↑ Haynold, Oliver M. (2011 年 4 月)。"CLI/.NET 的 Rserve 客戶端實現"。R/Finance 2011。芝加哥,伊利諾伊州,美國. http://www.rinfinance.com/agenda/2011/OliverHaynold.pdf.
- ↑ Verzani, John。RStudio 入門。O'Reilly Media, Inc. 第 4 頁。 ISBN 9781449309039.
- ↑ "行動式 Java 依賴項下載 · rstudio/rstudio@484cb88 · GitHub"。Github.com。2010-12-07. 檢索於 2015-05-01.
- ↑ "RStudio,用於 R 的新開源 IDE | RStudio 部落格". Blog.rstudio.org. 檢索於 2015-05-01.
- ↑ quickR
- ↑ Robert A. Muenchen (2012). "資料分析軟體的流行度".
- ↑ Rdocumentation