R Programming/Utilities
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 (Unix/DOS)
editsystem() 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().
File Handling
editdir() 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.remove(dir(path="directoryname", pattern="*.log"))
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.
Internet
editbrowseURL() opens an URL using an internet browser. download.file() download a file from the internet.
> browseURL("http://en.wikibooks.org/wiki/R_Programming")
To see the default browser, use getOption()
getOption("browser")
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 read.table()
, scan()
or readLines()
.
# 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
Computing time
editIf 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] 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
Computing process
edituser.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().
Miscellanous
edit- 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)
[1] 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 Also
edit- See the R.utils package[1]
References
edit- ↑ Henrik Bengtsson (2009). R.utils: Various programming utilities. R package version 1.1.7. http://CRAN.R-project.org/package=R.utils