R 不仅仅是一种编程语言,它还是一种具有读-求值-打印循环(REPL)的编程外壳。外壳是大多数人使用 R 的方式。但当你深入了解时,知道幕后工作原理会很有帮助。在本文中,您将学习
- 如何在 R 中管理变量
- 如何在 R 中管理包
让我们开始吧。

在 R 环境中生存。
照片由 Claudio Schwarz 拍摄。保留部分权利。
概述
这篇博文分为三部分;它们是:
- R 中的 REPL
- 在 R 中获取帮助
- R 中的包管理
R 中的 REPL
“R” 是一个提供 REPL 外壳的命令。如果您将以下内容放入一个文件,例如 inverse.R
1 2 3 |
A <- matrix(c(9, 5, 4, 2, -1, 0, 1, 6, -2), ncol=3) A.inv <- solve(A) print(A) |
并在命令行中运行 Rscript inverse.R
,您将在屏幕上看到以下内容
1 2 3 4 |
[,1] [,2] [,3] [1,] 9 2 1 [2,] 5 -1 6 [3,] 4 0 -2 |
“Rscript”命令(大写的 R)将逐行运行 R 命令。如果运行“R”,您将启动外壳,您将看到提示符“>
”。同样,您也可以运行 RStudio,它会代表您运行“R”命令。
提示符是供您键入 R 命令的。如果您的命令在行末不完整,R 将期望您继续。因此,在这种情况下,您将看到提示符“+
”
在 R 中,您可以在当前环境中创建变量。例如
1 2 |
a <- c(1, 2, 3) b <- c(-2, -4, -6) |
然后您将创建变量“a
”和“b
”。如果您正在使用 RStudio,可以很容易地检查 R 中定义了哪些变量。如果您只有 REPL 外壳,您可以使用“ls()
”检查已定义变量的列表
1 2 |
> ls() [1] "a" "b" |
将新数据分配给变量将覆盖它,就像在许多其他编程语言中一样。如果您有一个不想要的变量,您可以忽略它。但如果您想回收不需要的变量的内存,您必须使用以下命令删除它
1 |
rm(a, b) |
在 REPL 中获取帮助
R 的语法有时很晦涩,但从互联网上查找帮助并不困难。例如,Stack Overflow 有一个专门针对 R 相关问题的标签
但是,如果您在 REPL 中,您也可以通过以下任一方式获得在线帮助:
1 2 |
help(ls) ?ls |
任一方法都会在屏幕上显示关于特定命令(在此例中为“ls
”)的全屏帮助。但如果您忘记了命令是什么,您可以使用模式搜索
1 2 |
help.search("regression") ??regression |
以上任一方法都会显示与“regression”相关的所有函数(以及一行描述)的长列表。请注意,如果您使用“help.search()
”,则需要提供一个带引号的字符串,但“??
”已经假设其后的内容是字符串。
以上提供的帮助非常详细,但有时不够有用。您可能会看到某个特定函数的示例,方法是使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
> example(ls) ls> .Ob <- 1 ls> .ls(pattern = "O") character(0) ls> .ls(pattern= "O", all.names = TRUE) # also shows ".[foo]" [1] ".Ob" ls> # shows an empty list because inside myfunc no variables are defined ls> myfunc <- function() {ls()} ls> myfunc() character(0) ls> # define a local variable inside myfunc ls> myfunc <- function() {y <- 1; ls()} ls> myfunc() # shows "y" [1] "y" |
在这种情况下,示例可以帮助您快速入门。但如果您需要更多细节来理解函数的每一个部分,您必须参考 help()
函数提供的完整文档。
R 中的包管理
R 是一种可扩展的语言。R 编写了许多包来提供新功能。由于 R 社区在数学和统计学领域的研究人员占有不成比例的比例,您可能会发现很多以研究为导向的包或前沿统计算法的实现。
就像 Perl 的 CPAN 和 Python 的 PyPI 一样,R 中的包注册在在线存储库 CRAN 中。CRAN 中大约有 20,000 个包。您可以在以下网址按名称浏览它们:
如果您知道包的名称,您可以使用 install.packages("name")
进行安装。要删除该包,您可以使用 remove.packages("name")
。请注意,在这两个函数中,您都需要提供包名作为字符串。
在 RStudio 中查找所有已安装包的列表很容易。但在 REPL 中,您可以使用 installed.packages()
。
要更新已安装的包,您只需键入 update.packages()
,R 会要求您确认升级。
请注意,安装包并不意味着 R 必须使用它。要使用包,您需要加载或导入它。在 R 中,语法是
1 |
library(Matrix) |
调用 library() 函数时,包的名称没有加引号。您还可以使用以下方法查看包提供了哪些函数:
1 |
help(package=Matrix) |
总结
在本篇文章中,您学习了如何与 R 进行交互。具体来说,您现在知道
- 如何在 R 中管理变量
- 如何在 R 中获取函数帮助
- 如何在 R 中安装、删除和更新包
暂无评论。