Micsellaneous concepts
Running R in different ways
There are various ways to run R:
- Via a GUI: This is what we have been doing so
far. This is possible only in Windows.
- Via a command window: This is much as above except
that we do not have the menu facilities. This is the main way
most people use R in Linux or Mac. The worst difficulty here is
not having a stop button to abort a program that has gone out of
control.
- In batch mode: Here we submit a script file to R. R
exits automaticlly after executing this script.
Running R from command line
If you are running R in Linux/Mac, you have to just open a
terminal, type "R" at the prompt, and hit "enter". We shall
learn how to do the same thing in Windows. It is never a good
idea to this in Windows, though, as the GUI version is more user
firendly. First you have to know where R is installed in your
system. In the Penn State labs, the path to the R executible is
C:\Program Files\R\R-2.9.0\bin\R.exe
Next you have to open a command prompt (Start > All programs >
Accessories > Command prompt). Now type
C:\Program Files\R\R-2.9.0\bin\R
in it. You'll be greeted by the familiar R prompt.
Running R in batch mode
Let us first create a script file called test.r
containing the following lines. Keep the file on your desktop.
cat("It works!\n") #cat simply prints its arguments without
#any embellishment.
x = 1:100
print(x)
Now open a command prompt and navigate to your desktop folder
(which is V:\desktop in the Penn State labs!) Now type
Using multiple graphics windows
When we issue a command like plot R checks if there is a
graphics window already open. If it is, then the plot is isplayed
there, else a new graphics window is created for the plot. It is
possible for the user to explicitly create a new graphics
window. In Windows the command is
win.graph()
In Linux one could use
x11()
Only one of the graphics windows is active at a time, and all
subsequent plotting commands will direct their output to it. By
default, the most recently created graphics window is the active
one. However we can use the function dev.set to activate
some other graphics window.
plot(1:10) #Creates graphics window 1, and plots in it
win.graph() #Creates a new graphics window (blank)
plot(1:100) #Draws in the new window
plot(1:3) #Draws again in the same new window
dev.set(2) #Depending on your setting
#you may need to change 2
#to something else. The number
#is given in the title bar of
#the window you want to activate
plot(1:5) #Plots in the activated window
String manipulation with R
As you have seen already, R is a command-based software, and the
commands are all strings. Sometimes it is helpful to generate
a command string programmatically, e.g., when the command is very
long but has a simple structure. The functions paste and
eval may prove handy in such a situation.
The paste function combines strings (after converting
its arguments to strings, if needed).
paste("X",1:10)
paste("X",1:10,sep="")
paste("X",1:10,sep="",collapse="+") #Try abbreviating 'collapse'!
This function proves particularly useful in conjunction with the
names function.
quas = read.table('SDSS_quasar.dat',head=T)
names(quas)
paste(names(quas),collapse="+")
With the eval function you can execute a command. This
is useful when the command is parsed from a programmatically generated string.
x = seq(-10,10,.1)
comm = 'plot(x,sin(x),ty="l")'
eval(parse(text=comm))
Model based clustering
The theory class talked about model based clustering (Gaussian
mixtures, EM algorithm etc). There is an R package that
implements these. It is not part of R by default. So we shall
need to download it.
install.packages('mclust','v:\\Desktop')
The second argument is not needed if you had write-access to the
default R package location in your machine. But you do not have
that access in the Penn State lab machines. So we are specifying
a location that we can write to. (Unfortunately, Penn State labs do not provide enough write access for
installing a new package.)
You'll be prompted to choose a repository from where to download
the package. Choose something close to us (e.g., the one with PA
1 in its name).
To load the package type
library('mclust','v:\\Desktop')
The main function in this package is Mclust.