跳转到内容

生物医学工程理论与实践/R语言介绍

来自维基教科书,自由的教科书,共建自由的世界

什么是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(综合R语言档案网络)

CRAN 菜单在 CRAN镜像 中包含 镜像最新消息任务视图搜索CRAN镜像 中的“镜像”显示了如何根据您的位置和平台下载和安装R语言。这里还包含常见问题解答。 “最新消息”报告了R语言中的更改、R语言中的错误修复,包括新包的公告。“任务视图”根据特定领域组织R语言包。“搜索”链接了一些网站,这些网站可以搜索帮助文件、手册和邮件列表存档。

关于R语言 部分在CRAN中包含 R语言主页R语言期刊R语言主页 链接到 R语言统计计算项目R语言期刊 链接到 https://journal.r-project.orghttps://journal.r-project.org 是R语言统计计算项目的开放获取、同行评审期刊。它刊登了涵盖可能对R语言用户或开发人员感兴趣的主题的短篇到中篇论文,包括对R语言扩展包的简要介绍、在R语言中编程的提示、面向新手的提示以及证明如何在使用R语言的当前兴趣领域使用该技术的证据。软件 部分在 CRAN镜像 中包含 R语言源代码R语言二进制文件其他文档 部分在 CRAN镜像 中包含 手册常见问题解答贡献手册 由R语言开发核心团队编辑,可以下载为PDF文件、EPUB文件或直接浏览为HTML文件。R语言常见问题解答 是一个通用集合,包含所有平台用户的有用信息。贡献 包含用户提供的手册、教程等。

如何安装R语言

[编辑 | 编辑源代码]
  1. 访问 https://www.r-project.org.cn/
  2. 点击下载R语言链接。
  3. 然后选择一个离您最近的位置。
  4. 点击您的操作系统(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

RStudio屏幕包含 编辑器窗口控制台窗口项目窗口 以及 文件/当前目录/已加载的包/帮助/查看器

使用R语言包

[编辑 | 编辑源代码]

R 非常强大,它包含了称为包的 R 函数、数据和编译代码集合,这些集合以定义良好的格式[12] 存储。存储包的目录称为库。R 本身在安装时包含一组标准包。安装后,需要将它们加载到会话中才能使用。在 综合 R 档案网络 (CRAN)BioconductorOmegahatGithub 和其他存储库中,有超过 5,800 个额外的包可用。[13][14]

  • R 包的可用性
> browseURL("https://cran.r-project.org.cn/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 PKDescription:

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]
  1. 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)
  2. Gentleman, Robert (2006 年 12 月 9 日)。"Robert Gentleman 个人专业简介"。存档于 原文 中,于 2011 年 7 月 23 日. 检索于 2009-07-20.
  3. "R 新闻"cran.r-project.org. 检索于 2014-07-03.
  4. Eddelbuettel, Dirk; Francois, Romain (2011)。"Rcpp:R 和 C++ 的无缝集成"统计软件杂志40 (8).
  5. Temple Lang, Duncan (2010 年 11 月 6 日)。"从 Java 调用 R" (PDF)。Nuiton. 检索于 2013 年 9 月 18 日.
  6. "使用 C# 和 R 创建 GUI,借助 R.NET".
  7. "R.NET 主页".
  8. Haynold, Oliver M. (2011 年 4 月)。"CLI/.NET 的 Rserve 客户端实现"。R/Finance 2011。芝加哥,伊利诺伊州,美国. http://www.rinfinance.com/agenda/2011/OliverHaynold.pdf. 
  9. Verzani, John。RStudio 入门。O'Reilly Media, Inc. 第 4 页。 ISBN 9781449309039.
  10. "便携式 Java 依赖项下载 · rstudio/rstudio@484cb88 · GitHub"。Github.com。2010-12-07. 检索于 2015-05-01.
  11. "RStudio,用于 R 的新开源 IDE | RStudio 博客". Blog.rstudio.org. 检索于 2015-05-01.
  12. quickR
  13. Robert A. Muenchen (2012). "数据分析软件的流行度".
  14. Rdocumentation
华夏公益教科书