R Programming/Utilities

      System (Unix/DOS)

      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().

      ↑Jump back a section

      File Handling

      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.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.
      ↑Jump back a section

      Internet

      browseURL() 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://www.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://www.http://en.wikibooks.org/wiki/R_Programming/Text_Processing")
      

      See also RCurl

      ↑Jump back a section

      Computing time

      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] 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
      
      ↑Jump back a section

      Computing process

      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().

      ↑Jump back a section

      Miscellanous

      • 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.
      ↑Jump back a section

      See Also

      • See the R.utils package[1]
      ↑Jump back a section

      References

      1. Henrik Bengtsson (2009). R.utils: Various programming utilities. R package version 1.1.7. http://CRAN.R-project.org/package=R.utils
      ↑Jump back a section
      Last modified on 10 May 2013, at 10:44