跳转到内容

R 编程/实用程序

来自维基教科书,开放世界中的开放书籍

此页面包含一些实用程序的信息。这里介绍的大多数函数与统计分析无关,但在项目开发中可能有用。许多函数类似于标准的 unix 函数。

系统 (Unix/DOS)

[编辑 | 编辑源代码]

system()提供对系统 (DOS 或 unix) 的访问权限。选项wait=FALSE意味着您不会让 R 等待任务完成。

一些示例 

  • 您可以使用 unix 将图像从 PS 转换为 PNGconvert计算机上的功能。如果您想了解更多关于此功能的信息,请打开一个终端应用程序并键入man convert(这应该适用于 Mac OS 和 Linux)。
  • 您可以打开 Stata 并运行程序。
  • 您可以从 R 运行 pdflatex,并直接在 pdf 浏览器中打开 pdf。
system("convert W:/toto.ps W:/toto.png") # converts toto.ps to toto.png
system("D:/Stata10/stata.exe do D:/pgm.do", wait = F) # opens Stata and run pgm.do
system("pdflatex.exe -shell-escape file.tex") # runs pdflatex
system("open file.pdf") # opens the pdf
system("open M:/.../doc/*.pdf") # opens all the pdf in a directory

另见sys()Hmisc 包中,shell()shell.exec().

文件处理

[编辑 | 编辑源代码]

dir()列出目录中的所有文件。它类似于 Unix 函数ls. dir.create() 创建一个新目录。它类似于mkdir在 Unix 中。

file.info()提供有关文件的信息。

> file.info("taille.txt")
           size isdir mode               mtime               ctime               atime exe
taille.txt  444 FALSE  666 2009-06-26 12:25:44 2009-06-26 12:25:43 2009-06-26 12:25:43  no

删除具有特定模式的文件 

file.remove(dir(path="directoryname", pattern="*.log"))
  • file.edit() 在文本编辑器中打开文件。
  • file.show()在新窗口中打开文件。
  • tempfile()创建一个临时文件。
  • getZip()在 Hmisc 包中。

互联网

[编辑 | 编辑源代码]

browseURL()使用互联网浏览器打开 URL。download.file()从互联网下载文件。

> browseURL("https://wikibooks.cn/wiki/R_Programming")

要查看默认浏览器,请使用getOption()

getOption("browser")

我们可以使用以下命令更改默认浏览器options()命令。最好先存储选项。

oldoptions <- options() # save the options
options(browser = "D:/FramafoxPortable/FramafoxPortable.exe")

您可以使用 download.file() 从互联网下载文件。请注意,您通常不需要从互联网下载文件,您可以直接使用标准函数从互联网将文件加载到 R 中。例如,如果您想从互联网读取文本文件,可以使用 read.table()scan()readLines()

# For example, we download "https://wikibooks.cn/wiki/R_Programming/Text_Processing" on our Desktop
download.file(url="https://wikibooks.cn/wiki/R_Programming/Text_Processing",destfile= "~/Desktop/test_processing.html")
# You can also read it into R using readLines()
text <- readLines("https://wikibooks.cn/wiki/R_Programming/Text_Processing")

另见 RCurl

计算时间

[编辑 | 编辑源代码]

如果您执行计算机密集型任务,您可能希望优化计算时间。有两个可用的函数:system.time() 和 proc.time()。两者都返回一个值向量。第一个是标准的 CPU 时间

> system.time(x<-rnorm(10^6))
[1] 1.14 0.07 1.83 0.00 0.00
> debut <- proc.time()
> x <- rnorm(10^6)
> proc.time()-debut
[1]  1.66  0.10 10.32  0.00  0.00

计算过程

[编辑 | 编辑源代码]

user.prompt()(Zelig) 在计算过程中暂停(如果您想进行演示,这很有用)。waitReturn()(cwhmisc) 执行相同的工作。Sys.sleep()停止计算几秒钟。

> user.prompt()

Press <return> to continue: 
> Sys.sleep(5)

如果逻辑条件不成立,则可以使用以下命令停止计算过程stopifnot().

  • trCopy()(TinnR 包) 将对象复制到剪贴板。如果您想将大型对象复制到剪贴板,这很有用。例如,如果您想复制函数的代码并将其粘贴到文本编辑器中。
> trCopy(lm)
[1] TRUE
  • sessionInfo()提供有关当前会话信息的详细信息(R 版本 + 加载的包)。此函数可能对可重复的计算很有用。getRversion()提供当前 R 版本。R.version提供有关计算机的更多详细信息,以及R.Version()以列表形式返回相同的信息。
  • 参见 R.utils[1]

参考文献

[编辑 | 编辑源代码]
  1. Henrik Bengtsson (2009). R.utils: 各种编程工具。R 包版本 1.1.7。 http://CRAN.R-project.org/package=R.utils
华夏公益教科书