R Programming/Utilities< R Programming
This page includes material about some utilities. Most of the functions presented here have nothing to do with statistical analysis but may be useful when working on a project. Many functions are just similar to standard unix functions.
system() gives access to the system (DOS or unix). The option wait=FALSE means that you don't ask R to wait that the task is finished.
Some examples :
- You can convert an image from to PS to PNG using the unix convert function of your computer. If you want to know more about this function, open a Terminal application and type man convert (This should work on Mac OS and Linux).
- You can open Stata and run a program.
- You can run pdflatex from R and directly open the pdf in a pdf browser.
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
See also sys() in the Hmisc package, shell() and shell.exec().
dir() lists all the files in a directory. It is similar to the Unix function ls.
dir.create() creates a new directory. It is similar to mkdir in Unix.
file.info() gives information about a file.
> 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
Removing files with a specific pattern :
file.edit()opens a file in the text editor.
- file.show() opens a file in a new window.
- tempfile() creates a temporary file.
- getZip() in the Hmisc package.
browseURL() opens an URL using an internet browser. download.file() download a file from the internet.
To see the default browser, use getOption()
We can change the default browser using the options() command. It is safer to store the options before.
oldoptions <- options() # save the options options(browser = "D:/FramafoxPortable/FramafoxPortable.exe")
You can download a file from the internet using
download.file(). Note that very often you don't need to download a file from the internet and you can directly load it into R from the internet using standard functions. For instance, if you want to read a text file from the internet, you can use
# For example, we download "http://en.wikibooks.org/wiki/R_Programming/Text_Processing" on our Desktop download.file(url="http://en.wikibooks.org/wiki/R_Programming/Text_Processing",destfile= "~/Desktop/test_processing.html") # You can also read it into R using readLines() text <- readLines("http://en.wikibooks.org/wiki/R_Programming/Text_Processing")
See also RCurl
If you perform computer intensive task you may want to optimize the computing time. Two functions are available system.time() and proc.time(). Both returns a vector of values. The first is the standard CPU time.
> system.time(x<-rnorm(10^6))  1.14 0.07 1.83 0.00 0.00
> debut <- proc.time() > x <- rnorm(10^6) > proc.time()-debut  1.66 0.10 10.32 0.00 0.00
user.prompt() (Zelig) makes a pause in the computation process (useful if you want to do a demo). waitReturn() (cwhmisc) does the same job. Sys.sleep() stop the computation during a few seconds.
> user.prompt() Press <return> to continue: > Sys.sleep(5)
It is possible to stop the computing process if a logical condition is not true using stopifnot().
- trCopy() (TinnR package) copy an object to the clipboard. It is useful if you want to copy a large object to the clipboard. For instance, if you want to copy the code of a function and paste it in a text editor.
> trCopy(lm)  TRUE
- sessionInfo() gives information on the current session info (R version + loaded packages). This function may be useful for reproducible computing. getRversion() gives the current R version. R.version gives more details about the computer and R.Version() returns the same informations as a list.
- See the R.utils package
- Henrik Bengtsson (2009). R.utils: Various programming utilities. R package version 1.1.7. http://CRAN.R-project.org/package=R.utils