Вы находитесь на странице: 1из 55

Computational Finance and Risk Management

R Programming
for Quantitative Finance
Guy Yollin
Applied Mathematics
University of Washington
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 1 / 55
Outline
1
R language overview and history
2
R language references
3
Short R Tutorial
4
The R help system
5
Web resources for R
6
IDE editors for R
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 2 / 55
Lecture references
J. Adler.
R in a Nutshell: A Desktop Quick Reference.
OReilly Media, 2010.
Chapters 1-3
W. N. Venables and D. M. Smith.
An Introduction to R.
2013.
Sections 1-3
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 3 / 55
Outline
1
R language overview and history
2
R language references
3
Short R Tutorial
4
The R help system
5
Web resources for R
6
IDE editors for R
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 4 / 55
Computer programming
Computer programming is the process of designing, writing, testing,
debugging, and maintaining the source code of computer programs
The computer program source code is written in a programming
languages
The purpose of programming is to create a set of instructions that
computers use to perform specic operations or to exhibit desired
behaviors
http://en.wikipedia.org/wiki/Computer_programming
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 5 / 55
Computer programming languages
Most computer programming languages include instructions to perform a
core set of tasks:
input Get data from the keyboard, a le, or other device
output Display data on the screen, send data to a le or
other device
arithmetic Perform basic arithmetic and logical operations
conditional execution Check for certain conditions and execute the
appropriate sequence of statements
repetition Perform some action repeatedly, usually with some
variation
sub-programming Call a subroutine or function passing parameters
and returning a result
Allen Downey, How To Think Like A Computer Scientist,
http://www.greenteapress.com/
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 6 / 55
The R programming language
R is a language and environment for statistical computing and
graphics
R is based on the S language originally developed by John Chambers
and colleagues at AT&T Bell Labs in the late 1970s and early 1980s
R (sometimes called GNU S" ) is free open source software licensed
under the GNU general public license (GPL 2)
R development was initiated by Robert Gentleman and Ross Ihaka at
the University of Auckland, New Zealand in the 1990s
R is formally known as The R Project for Statistical Computing
www.r-project.org
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 7 / 55
Strengths of the R programming language
Data manipulation
Data analysis
Statistical modeling
Data visualization
1
.0
1
.5
2
.0
2
.5
3
.0
3
.5
4
.0
HAM1
EDHEC LS EQ
SP500 TR
C
u
m
u
la
t
iv
e

R
e
t
u
r
n
HAM1 Performance

0
.1
0

0
.0
5
0
.0
0
0
.0
5
M
o
n
t
h
ly

R
e
t
u
r
n
Jan 96 Jan 97 Jan 98 Jan 99 Jan 00 Jan 01 Jan 02 Jan 03 Jan 04 Jan 05 Jan 06 Dec 06
Date

0
.4

0
.3

0
.2

0
.1
0
.0
D
r
a
w
d
o
w
n
Plot from the PerformanceAnalytics package
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 8 / 55
S language implementations
R is the most recent and full-featured
implementation of the S language
Original S - AT & T Bell Labs
S-PLUS (S plus a GUI)
Statistical Sciences, Inc.

Mathsoft, Inc.
Insightful, Inc.
Tibco, Inc.
R - The R Project for Statistical
Computing
Figure from The History of S and R, John Chambers, 2006

Founded by UW Professor Doug Martin, CompFin Program Director


Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 9 / 55
R timeline
1976 2011
Work on S
Version 1
Exponential
growth of
R Users and
R packages
1993
StatSci Licenses S
1999
John Chambers
1998 ACM Software Award
2010
R & R
Given ASA
Statistical Computing
and Graphics Award
1997
Modern Applied Statistics
with S-PLUS
2nd Edition
2004
R 2.0.0
1984
S: An Interactive Envirnoment for
Data Analysis and Graphics
(Brown Book)
1988
The New S Language
Written in C
(Blue Book)
1993
R on Statlib
1991
Statistical Models in S
(white book)
S3 methods
1999
Modern Applied Statistics
with S-PLUS
3rd Edition
(S+ 2000, 5.x)
(R complements)
1997
R on CRAN
GNU Project
2002
Modern Applied Statistics
with S
4th Edition
(S+ 6.x, R 1.5.0)
1988
S-PLULS
developed by
Statistical Sciences, Inc.
2001
R 1.4.0
(S4)
1998
Programming with Data
(Green Book)
(S+ 5.x)
1994
Modern Applied Statistics
with S-PLUS
2000
R 1.0.0
(S3)
S era S-PLUS era R era
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 10 / 55
Recognition of software excellence
Association for Computing
Machinery
John Chambers received the 1998
ACM Software System Award
Dr. Chambers work
will forever alter the
way people analyze,
visualize, and
manipulate data
American Statistical
Association
Robert Gentleman and Ross
Ihaka received the 2009 ASA
Statistical Computing and
Graphics Award
In recognition for their
work in initiating the R
Project for Statistical
Computing
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 11 / 55
Outline
1
R language overview and history
2
R language references
3
Short R Tutorial
4
The R help system
5
Web resources for R
6
IDE editors for R
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 12 / 55
Essential web resources
An Introduction to R
W.N. Venables, D.M. Smith
R Development Core Team
R Reference Card
Tom Short
R Reference Card
by Tom Short, EPRI Solutions, Inc., tshort@eprisolutions.com 2005-07-12
Granted to the public domain. See www.Rpad.org for the source and latest
version. Includes material from R for Beginners by Emmanuel Paradis (with
permission).
Help and basics
Most R functions have online documentation.
help(topic) documentation on topic
?topic id.
help.search("topic") search the help system
apropos("topic") the names of all objects in the search list matching
the regular expression topic
help.start() start the HTML version of help
str(a) display the internal *str*ucture of an R object
summary(a) gives a summary of a, usually a statistical summary but it is
generic meaning it has different operations for different classes of a
ls() show objects in the search path; specify pat="pat" to search on a
pattern
ls.str() str() for each variable in the search path
dir() show les in the current directory
methods(a) shows S3 methods of a
methods(class=class(a)) lists all the methods to handle objects of
class a
options(...) set or examine many global options; common ones: width,
digits, error
library(x) load add-on packages; library(help=x) lists datasets and
functions in package x.
attach(x) database x to the R search path; x can be a list, data frame, or R
data le created with save. Use search() to show the search path.
detach(x) x from the R search path; x can be a name or character string
of an object previously attached or a package.
Input and output
load() load the datasets written with save
data(x) loads specied data sets
read.table(file) reads a le in table format and creates a data
frame from it; the default separator sep="" is any whitespace; use
header=TRUE to read the rst line as a header of column names; use
as.is=TRUE to prevent character vectors from being converted to fac-
tors; use comment.char="" to prevent "#" from being interpreted as
a comment; use skip=n to skip n lines before reading data; see the
help for options on row naming, NA treatment, and others
read.csv("filename",header=TRUE) id. but with defaults set for
reading comma-delimited les
read.delim("filename",header=TRUE) id. but with defaults set
for reading tab-delimited les
read.fwf(file,widths,header=FALSE,sep=" ",as.is=FALSE)
read a table of f ixed width f ormatted data into a data.frame; widths
is an integer vector, giving the widths of the xed-width elds
save(file,...) saves the specied objects (...) in the XDR platform-
independent binary format
save.image(file) saves all objects
cat(..., file="", sep=" ") prints the arguments after coercing to
character; sep is the character separator between arguments
print(a, ...) prints its arguments; generic, meaning it can have differ-
ent methods for different objects
format(x,...) format an R object for pretty printing
write.table(x,file="",row.names=TRUE,col.names=TRUE,
sep=" ") prints x after converting to a data frame; if quote is TRUE,
character or factor columns are surrounded by quotes ("); sep is the
eld separator; eol is the end-of-line separator; na is the string for
missing values; use col.names=NA to add a blank column header to
get the column headers aligned correctly for spreadsheet input
sink(file) output to file, until sink()
Most of the I/O functions have a file argument. This can often be a charac-
ter string naming a le or a connection. file="" means the standard input or
output. Connections can include les, pipes, zipped les, and R variables.
On windows, the le connection can also be used with description =
"clipboard". To read a table copied from Excel, use
x <- read.delim("clipboard")
To write a table to the clipboard for Excel, use
write.table(x,"clipboard",sep="\t",col.names=NA)
For database interaction, see packages RODBC, DBI, RMySQL, RPgSQL, and
ROracle. See packages XML, hdf5, netCDF for reading other le formats.
Data creation
c(...) generic function to combine arguments with the default forming a
vector; with recursive=TRUE descends through lists combining all
elements into one vector
from:to generates a sequence; : has operator priority; 1:4 + 1 is 2,3,4,5
seq(from,to) generates a sequence by= species increment; length=
species desired length
seq(along=x) generates 1, 2, ..., length(x); useful for for loops
rep(x,times) replicate x times; use each= to repeat each el-
ement of x each times; rep(c(1,2,3),2) is 1 2 3 1 2 3;
rep(c(1,2,3),each=2) is 1 1 2 2 3 3
data.frame(...) create a data frame of the named or unnamed
arguments; data.frame(v=1:4,ch=c("a","B","c","d"),n=10);
shorter vectors are recycled to the length of the longest
list(...) create a list of the named or unnamed arguments;
list(a=c(1,2),b="hi",c=3i);
array(x,dim=) array with data x; specify dimensions like
dim=c(3,4,2); elements of x recycle if x is not long enough
matrix(x,nrow=,ncol=) matrix; elements of x recycle
factor(x,levels=) encodes a vector x as a factor
gl(n,k,length=n*k,labels=1:n) generate levels (factors) by spec-
ifying the pattern of their levels; k is the number of levels, and n is
the number of replications
expand.grid() a data frame from all combinations of the supplied vec-
tors or factors
rbind(...) combine arguments by rows for matrices, data frames, and
others
cbind(...) id. by columns
Slicing and extracting data
Indexing lists
x[n] list with elements n
x[[n]] nth element of the list
x[["name"]] element of the list named "name"
x$name id.
Indexing vectors
x[n] nth element
x[-n] all but the nth element
x[1:n] rst n elements
x[-(1:n)] elements from n+1 to the end
x[c(1,4,2)] specic elements
x["name"] element named "name"
x[x > 3] all elements greater than 3
x[x > 3 & x < 5] all elements between 3 and 5
x[x %in% c("a","and","the")] elements in the given set
Indexing matrices
x[i,j] element at row i, column j
x[i,] row i
x[,j] column j
x[,c(1,3)] columns 1 and 3
x["name",] row named "name"
Indexing data frames (matrix indexing plus the following)
x[["name"]] column named "name"
x$name id.
Variable conversion
as.array(x), as.data.frame(x), as.numeric(x),
as.logical(x), as.complex(x), as.character(x),
... convert type; for a complete list, use methods(as)
Variable information
is.na(x), is.null(x), is.array(x), is.data.frame(x),
is.numeric(x), is.complex(x), is.character(x),
... test for type; for a complete list, use methods(is)
length(x) number of elements in x
dim(x) Retrieve or set the dimension of an object; dim(x) <- c(3,2)
dimnames(x) Retrieve or set the dimension names of an object
nrow(x) number of rows; NROW(x) is the same but treats a vector as a one-
row matrix
ncol(x) and NCOL(x) id. for columns
class(x) get or set the class of x; class(x) <- "myclass"
unclass(x) remove the class attribute of x
attr(x,which) get or set the attribute which of x
attributes(obj) get or set the list of attributes of obj
Data selection and manipulation
which.max(x) returns the index of the greatest element of x
which.min(x) returns the index of the smallest element of x
rev(x) reverses the elements of x
sort(x) sorts the elements of x in increasing order; to sort in decreasing
order: rev(sort(x))
cut(x,breaks) divides x into intervals (factors); breaks is the number
of cut intervals or a vector of cut points
Denitely obtain these PDF les from the R homepage or a CRAN mirror
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 13 / 55
Introductory texts
R in a Nutshell: A Desktop
Quick Reference
Joseph Adler
OReilly Media, 2009
A Beginners Guide to R
Zuur, Ieno, Meesters
Springer, 2009
Both texts available online through UW library
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 14 / 55
Introductory texts
R in Action
Robert Kabaco
Manning Publications, 2011
The Art of R Programming
Norman Matlo
No Starch Press, 2011
* Croolo orllul grophs lo vlsuollzo complox dolo sols
* Vrllo moro olllclonl codo uslng porollol R ond
* lnlorloco R wllh C,C++ ond Pylhon lor lncroosod
* Flnd now pockogos lor loxl onolysls, lmogo monlpulo
* Squosh onnoylng bugs wllh odvoncod dobugglng
Vholhor youro doslgnlng olrcroll, lorocosllng lho
ol Colllornlo, Dovls. Hls rosoorch lnlorosls lncludo
on sollworo dovolopmonl. Ho hos wrlllon orllclos lor
[Mo Slorch Pross|.
A T O U R O F S T A T I S T I C A L S O F T W A R E D E S I G N
N O R M A N M A T L O F F
T HE
ART OF R
PROGRAMMI NG
T HE
ART OF R
PROGRAMMI NG
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 15 / 55
Statistics with R
Introductory Statistics with R
2nd Edition
P. Dalgaard
Springer, 2008
Modern Applied Statistics
with S, 4th Edition
Venables and Ripley
Springer, 2002
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 16 / 55
Experience with other statistical computing languages
For those with experience in MATLAB, David Hiebeler has created a
MATLAB/R cross reference document:
http://www.math.umaine.edu/~hiebeler/comp/matlabR.pdf
For those with experience in SAS, SPSS, or Stata, Robert Muenchen has
written R books for this audience:
http://r4stats.com
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 17 / 55
Outline
1
R language overview and history
2
R language references
3
Short R Tutorial
4
The R help system
5
Web resources for R
6
IDE editors for R
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 18 / 55
Interacting with R
R is an interpreted language

An R interpreter must be running in order to evaluate R commands or


execute R scripts
RGui which includes an R Console window
RStudio which includes an R Console window

http://en.wikipedia.org/wiki/Interpreted_language
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 19 / 55
R expression evaluation
R expressions are processed via Rs Read-eval-print loop

:

http://en.wikipedia.org/wiki/Read-eval-print_loop
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 20 / 55
Interacting with the RGui
The RGui is an interactive command
driven environment:
Type R commands (expressions)
into the R Console
Copy/Paste multiple R
commands into the R Console
Source an R script
An R script is simply a text
le of multiple R commands
Commands entered interactively into the R console
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 21 / 55
Interacting with RStudio
The RStudio is an Integrated
Development Environment (IDE) R:
Embedded R Console
RStudio runs an R interpreter
automatically
Program editor for R
Plot window
File browser
Integrated version control
R debugger
RStudio includes an embedded R Console
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 22 / 55
Calling functions
R makes extensive use of functions

Functions can be dened to take


zero or more arguments
Functions typically return a value
a return value is not required
Functions are called by name with
any arguments enclosed in
parentheses
even if the function has no
arguments the parentheses are
required
R Code: Calling functions
> sin(pi/2)
[1] 1
> print("Hello, world")
[1] "Hello, world"
> abs(-8)
[1] 8
> cos(2*sqrt(2))
[1] -0.9513631
> date()
[1] "Wed Sep 04 12:06:15 2013"

http://en.wikipedia.org/wiki/Functional_programming
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 23 / 55
Assigning values to variables
Like other programming languages,
values can be stored in variables
Variables are typically assigned
in 1 of 3 ways:
assignment operator: <-
assignment function: assign
equal sign: =
must be used to assign
arguments in a function call
R Code: Variable assignment
> y <- 5
> y
[1] 5
> assign("e",2.7183)
> e
[1] 2.7183
> s = sqrt(2)
> s
[1] 1.414214
> r <- rnorm(n=2)
> r
[1] -0.1709999 -0.2955244
> s*e+y
[1] 8.844257
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 24 / 55
Object orientation in R
Everything in R is an Object

Use functions ls and objects to list all objects in the current


workspace
R Code: Listing objects
> x <- c(3.1416,2.7183)
> m <- matrix(rnorm(9),nrow=3)
> tab <- data.frame(store=c("downtown","eastside","airport"),sales=c(32,17,24))
> cities <- c("Seattle","Portland","San Francisco")
> ls()
[1] "cities" "e" "filename" "m" "r" "s" "tab"
[8] "x" "y"

http://en.wikipedia.org/wiki/Object-oriented_programming
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 25 / 55
Object classes
All R objects have a class
The class of an object determines
what it can do and what you can
do with it
Use function class to
display an objects class
There are many R classes;
basic classes are:
numeric
character
data.frame
matrix
R Code: Object class
> m
[,1] [,2] [,3]
[1,] -1.1513003 0.2540168 -0.8743396
[2,] -1.8110270 -0.1990991 -0.2203033
[3,] -0.2426666 -0.1148757 0.9476824
> class(m)
[1] "matrix"
> tab
store sales
1 downtown 32
2 eastside 17
3 airport 24
> class(tab)
[1] "data.frame"
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 26 / 55
Vectors
R is a vector/matrix programming language (also know as an array
programming language

)
vectors can easily be created with c, the combine function
most places where single value can be supplied, a vector can be
supplied and R will perform a vectorized operation
R Code: Creating vectors and vector operations
> my.vector <- c(2, 4, 3, 7, 10)
> my.vector
[1] 2 4 3 7 10
> my.vector^2
[1] 4 16 9 49 100
> sqrt(my.vector)
[1] 1.414214 2.000000 1.732051 2.645751 3.162278

http://en.wikipedia.org/wiki/Array_programming
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 27 / 55
Creating vectors with the c function
R Code: Creating vectors with the c function
> constants <- c(3.1416,2.7183,1.4142,1.6180)
> constants
[1] 3.1416 2.7183 1.4142 1.6180
> my.labels <- c("pi","euler","sqrt2","golden")
> my.labels
[1] "pi" "euler" "sqrt2" "golden"
> names(constants) <- my.labels
> constants
pi euler sqrt2 golden
3.1416 2.7183 1.4142 1.6180
The [1] in the above output is labeling the rst element of the vector
The c function can be used to create character vectors, numeric
vectors, as well as other types of vectors
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 28 / 55
Indexing vectors
Vectors indices are placed with
square brackets: []
Vectors can be indexed in any of the
following ways:
vector of positive integers
vector of negative integers
vector of named items
logical vector
R Code: Indexing vectors
> constants[c(1,3,4)]
pi sqrt2 golden
3.1416 1.4142 1.6180
> constants[c(-1,-2)]
sqrt2 golden
1.4142 1.6180
> constants[c("pi","golden")]
pi golden
3.1416 1.6180
> constants > 2
pi euler sqrt2 golden
TRUE TRUE FALSE FALSE
> constants[constants > 2]
pi euler
3.1416 2.7183
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 29 / 55
Creating integer sequences with the a:b operator
The sequence operator will generate a vector of integers between a and b
Sequences of this type are particularly useful for indexing vectors, matrices,
data.frames etc.
R Code: Integer sequences
> 1:5
[1] 1 2 3 4 5
> -(1:4)
[1] -1 -2 -3 -4
> letters[1:15]
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o"
> letters[16:26]
[1] "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
> letters[-(1:15)]
[1] "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 30 / 55
Comparing vector and non-vector computing
R Code: Calculating the log on a vector of numbers
> # vectorized operation
> # taking the log of each element in a vector
> x <- c(97.87,96.18,95,86.39,88.18,90.8,86.06,82.27,83.32,85.3,83.25,82.13,78.54)
> log(x)
[1] 4.583640 4.566221 4.553877 4.458872 4.479380 4.508659 4.455045 4.410007
[9] 4.422689 4.446174 4.421848 4.408303 4.363608
> # non-vectorized computation
> # taking the log of each element in a vector
> n <- length(x)
> y <- rep(0,n)
> for( i in 1:n )
y[i] <- log(x[i])
> y
[1] 4.583640 4.566221 4.553877 4.458872 4.479380 4.508659 4.455045 4.410007
[9] 4.422689 4.446174 4.421848 4.408303 4.363608
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 31 / 55
Comparing vector and non-vector computing
R Code: Calculating the log on a matrix of numbers
> # vectorized operation
> # taking the log of each element in a matrix
> x <- matrix(c(2,9,4,7,5,3,6,1,8),nrow=3)
> x^2
[,1] [,2] [,3]
[1,] 4 49 36
[2,] 81 25 1
[3,] 16 9 64
> # non-vectorized computation
> # taking the log of each element in a matrix
> y <- x
> for( i in 1:nrow(x) )
for( j in 1:ncol(x) )
y[i,j] <- x[i,j]^2
> y
[,1] [,2] [,3]
[1,] 4 49 36
[2,] 81 25 1
[3,] 16 9 64
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 32 / 55
Outline
1
R language overview and history
2
R language references
3
Short R Tutorial
4
The R help system
5
Web resources for R
6
IDE editors for R
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 33 / 55
The HTML help system
R has a comprehensive HTML help
facility
Run the help.start function
R GUI menu item
Help|Html help
R Code: Starting HTML help
> help.start()
If nothing happens, you should open
http://127.0.0.1:23967/doc/html/index.html yourself
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 34 / 55
The help function
Obtain help on a particular topic via
the help function
help(topic)
?topic
R Code: Topic help
> help(read.table)
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 35 / 55
The help.search function
Search help for a particular topic via
the help.search function
help.search(topic)
??topic
R Code: Search help
> ??predict
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 36 / 55
Outline
1
R language overview and history
2
R language references
3
Short R Tutorial
4
The R help system
5
Web resources for R
6
IDE editors for R
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 37 / 55
R Homepage
http://www.r-project.org
List of CRAN mirror sites
Manuals
FAQs
Site seach
Mailing lists
Links
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 38 / 55
CRAN - Comprehensive R Archive Network
http://cran.fhcrc.org
CRAN Mirrors
About 90 sites worldwide
About 20 sites in US
R Binaries
R Packages
4800+ packages
R Sources
Task Views
use your closest CRAN mirror site
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 39 / 55
CRAN Task Views
Organizes the 4800+ R packages by
application
Finance
Time Series
Econometrics
Optimization
Machine Learning
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 40 / 55
Stackoverow
Stackoverow has become the primary resource for help with R
http://stackoverflow.com/
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 41 / 55
R-SIG-FINANCE
Nerve center of the R nance
community
Daily must read
Exclusively for Finance-specic
questions, not general R
questions
https://stat.ethz.ch/mailman/listinfo/r-sig-finance
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 42 / 55
Googles R Style Guide
Naming convention
Coding Syntax
Program Organization
http://google-styleguide.googlecode.com/svn/trunk/google-r-style.html
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 43 / 55
Quick R
http://www.statmethods.net
Introductory R Lessons
R Interface
Data Input
Data Management
Basic Statistics
Advanced Statistics
Basic Graphs
Advanced Graphs
Site maintained by Robert Kabaco, author of R in Action
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 44 / 55
R graphics details, colors, and other tech notes
Site of Earl Glynn of Stowers Institute for Medical Research
R Graphics and other useful information
R Color Chart
Using Color in R (great presentation)
Plot area, margins, multiple gures
Mixture models
Distance measures and clustering
Using Windows Explorer to Start R with Specied Working Directory
(under tech notes)
http://research.stowers-institute.org/efg/R/index.htm
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 45 / 55
Programming in R
Online R programming manual from UC Riverside:
R Basics
Finding Help
Code Editors for R
Control Structures
Functions
Object Oriented Programming
Building R Packages
http://manuals.bioinformatics.ucr.edu/home/programming-in-r
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 46 / 55
Other useful R sites
R Bloggers Aggregation of about 450 R blogs
http://www.r-bloggers.com
R Site Search Search R function help, vignettes, R-help
http://finzi.psych.upenn.edu/search.html
R Seek R specic search site
http://www.rseek.org/
R Graph Gallery Examples of many possible R graphs
http://addictedtor.free.fr/graphiques
Revolution Blog Blog from David Smith of Revolution
http://blog.revolutionanalytics.com
Inside-R R community site by Revolution Analytics
http://www.inside-r.org
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 47 / 55
Outline
1
R language overview and history
2
R language references
3
Short R Tutorial
4
The R help system
5
Web resources for R
6
IDE editors for R
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 48 / 55
RStudio
RStudio is a fully-featured open-source IDE
for R
R language highlighting
Paste/Source to R console
object explorer
tabbed graphics window
integrated version control
1-click Sweave compilation
RStudio also provides a server-based version (R running in the cloud)
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 49 / 55
Revolution R Enterprize Visual Development Environment
Revolution Analytics is a company
that sells a commercial distribution
of R including a desktop IDE
Revolution R Enterprize is free to
academic users
R language highlighting
Paste/Source code to R
Source code debugger
object explorer
runs R in SDI mode
http://www.revolutionanalytics.com
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 50 / 55
WinEdt and R-Sweave
Based on WinEdt, an excellent
shareware editor with support for
L
A
T
E
X and Sweave development
R language highlighting
Paste/Source code to R
1-click Sweave compilation
Supports R in MDI mode
Paste/Source code to S-PLUS
http://www.winedt.com
http://www.winedt.org/Config/modes/R-Sweave.php
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 51 / 55
StatET - An Eclipse Plug-In for R
StatET is a plug-in for the
open-source Eclipse development
environment
R language highlighting
Paste/Source code to R
Source code debugger
1-click Sweave compilation
Supports R in SDI mode
Excellent documentation by
Longhow Lam
http://www.walware.de/goto/statet
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 52 / 55
Notepad++ and NpptoR
NpptoR is an automation widget
(based on AuotHotkey) which allows
the very useful program editor
Notepad++ to interact with R
R language highlighting
Paste/Source code to R
Supports R in SDI mode
http://notepad-plus-plus.org
http://sourceforge.net/projects/npptor
http://rcom.univie.ac.at/download.html
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 53 / 55
Other R IDE links
Tinn-R Popular R IDE
http://www.sciviews.org/Tinn-R
ESS Emacs Speaks Statistics
http://ess.r-project.org
other R GUI Projects
http://www.sciviews.org/_rgui
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 54 / 55
Computational Finance and Risk Management
http://depts.washington.edu/compfin
Guy Yollin (Copyright 2013) R Programming for Quantitative Finance R Basics 55 / 55

Вам также может понравиться