Introduction to R for Finance

Introduction to R for Finance

Computational Finance and Risk Management mm 40 60 80 100 120 40 Introduction to R Guy Yollin 60 Principal Consultant, r-programming.org Affiliate Instructor, University of Washington 80 Guy Yollin (Copyright © 2011) Introduction to R 1 / 132 Outline 1 R language references mm 40 60 80 100 120 2 R overview and history 3 R language and environment basics 4 The working directory, data files, and data manipulation 40 5 Basic statistics and the normal distribution 6 Basic plotting 7 Working with time series in R 60 8 Variable scoping in R 9 The R help system 10 Web resources80 for R 11 IDE editors for R Guy Yollin (Copyright © 2011) Introduction to R 2 / 132 Outline 1 R language references mm 40 60 80 100 120 2 R overview and history 3 R language and environment basics 4 The working directory, data files, and data manipulation 40 5 Basic statistics and the normal distribution 6 Basic plotting 7 Working with time series in R 60 8 Variable scoping in R 9 The R help system 10 Web resources80 for R 11 IDE editors for R Guy Yollin (Copyright © 2011) Introduction to R 4 / 132 Essential web resources mm 40 60 80 100 120 An Introduction to R R Reference Card W.N. Venables, D.M. Smith Tom Short R Development Core Team 40 R Reference Card cat(..., file="", sep=" ") prints the arguments after coercing to Slicing and extracting data character; sep is the character separator between arguments Indexing lists by Tom Short, EPRI Solutions, Inc., [email protected] 2005-07-12 print(a, ...) prints its arguments; generic, meaning it can have differ- x[n] list with elements n th Granted to the public domain. See www.Rpad.org for the source and latest ent methods for different objects x[[n]] n element of the list version. Includes material from R for Beginners by Emmanuel Paradis (with format(x,...) format an R object for pretty printing x[["name"]] element of the list named "name" permission). write.table(x,file="",row.names=TRUE,col.names=TRUE, x$name id. sep=" ") prints x after converting to a data frame; if quote is TRUE, Indexing vectors character or factor columns are surrounded by quotes ("); sep is the x[n] nth element field separator; eol is the end-of-line separator; na is the string for x[-n] all but the nth element missing values; use col.names=NA to add a blank column header to x[1:n] first n elements Help and basics get the column headers aligned correctly for spreadsheet input Most R functions have online documentation. x[-(1:n)] elements from n+1 to the end sink(file) output to file, until sink() help(topic) documentation on topic x[c(1,4,2)] specific elements Most of the I/O functions have a file argument. This can often be a charac- ?topic id. x["name"] element named "name" ter string naming a file or a connection. file="" means the standard input or help.search("topic") search the help system x[x > 3] all elements greater than 3 output. Connections can include files, pipes, zipped files, and R variables. apropos("topic") the names of all objects in the search list matching x[x > 3 & x < 5] all elements between 3 and 5 On windows, the file connection can also be used with description = the regular expression ”topic” x[x %in% c("a","and","the")] elements in the given set "clipboard". To read a table copied from Excel, use Indexing matrices help.start() start the HTML version of help x <- read.delim("clipboard") str(a) display the internal *str*ucture of an R object x[i,j] element at row i, column j To write a table to the clipboard for Excel, use a x[i,] row i summary(a) gives a “summary” of , usually a statistical summary but it is write.table(x,"clipboard",sep=" t",col.names=NA) generic meaning it has different operations for different classes of a \ x[,j] column j For database interaction, see packages RODBC, DBI, RMySQL, RPgSQL, and ls() show objects in the search path; specify pat="pat" to search on a x[,c(1,3)] columns 1 and 3 ROracle. See packages XML, hdf5, netCDF for reading other file formats. pattern x["name",] row named "name" ls.str() str() for each variable in the search path Data creation Indexing data frames (matrix indexing plus the following) x[["name"]] column named "name" dir() show files in the current directory c(...) generic function to combine arguments with the default forming a x$name id. methods(a) shows S3 methods of a vector; with recursive=TRUE descends through lists combining all methods(class=class(a)) lists all the methods to handle objects of elements into one vector class a from:to generates a sequence; “:” has operator priority; 1:4 + 1 is “2,3,4,5” options(...) set or examine many global options; common ones: width, seq(from,to) generates a sequence by= specifies increment; length= Variable conversion digits, error specifies desired length 60 as.array(x), as.data.frame(x), as.numeric(x), library(x) load add-on packages; library(help=x) lists datasets and seq(along=x) generates 1, 2, ..., length(x); useful for for loops as.logical(x), as.complex(x), as.character(x), functions in package x. rep(x,times) replicate x times; use each= to repeat “each” el- ... convert type; for a complete list, use methods(as) attach(x) database x to the R search path; x can be a list, data frame, or R ement of x each times; rep(c(1,2,3),2) is 1 2 3 1 2 3; data file created with save. Use search() to show the search path. rep(c(1,2,3),each=2) is 1 1 2 2 3 3 Variable information detach(x) x from the R search path; x can be a name or character string data.frame(...) create a data frame of the named or unnamed is.na(x), is.null(x), is.array(x), is.data.frame(x), of an object previously attached or a package. arguments; data.frame(v=1:4,ch=c("a","B","c","d"),n=10); is.numeric(x), is.complex(x), is.character(x), Input and output shorter vectors are recycled to the length of the longest ... test for type; for a complete list, use methods(is) list(...) create a list of the named or unnamed arguments; x load() load the datasets written with save length(x) number of elements in list(a=c(1,2),b="hi",c=3i); dim(x) <- c(3,2) data(x) loads specified data sets dim(x) Retrieve or set the dimension of an object; array(x,dim=) array with data x; specify dimensions like read.table(file) reads a file in table format and creates a data dimnames(x) Retrieve or set the dimension names of an object dim=c(3,4,2); elements of x recycle if x is not long enough NROW(x) frame from it; the default separator sep="" is any whitespace; use nrow(x) number of rows; is the same but treats a vector as a one- matrix(x,nrow=,ncol=) matrix; elements of x recycle header=TRUE to read the first line as a header of column names; use row matrix factor(x,levels=) encodes a vector x as a factor as.is=TRUE to prevent character vectors from being converted to fac- ncol(x) and NCOL(x) id. for columns gl(n,k,length=n*k,labels=1:n) generate levels (factors) by spec- x class(x) <- "myclass" tors; use comment.char="" to prevent "#" from being interpreted as class(x) get or set the class of ; ifying the pattern of their levels; k is the number of levels, and n is x a comment; use skip=n to skip n lines before reading data; see the unclass(x) remove the class attribute of the number of replications which x help for options on row naming, NA treatment, and others attr(x,which) get or set the attribute of expand.grid() a data frame from all combinations of the supplied vec- obj read.csv("filename",header=TRUE) id. but with defaults set for attributes(obj) get or set the list of attributes of tors or factors reading comma-delimited files rbind(...) combine arguments by rows for matrices, data frames, and Data selection and manipulation read.delim("filename",header=TRUE) id. but with defaults set others which.max(x) returns the index of the greatest element of x for reading tab-delimited files cbind(...) id. by columns which.min(x) returns the index of the smallest element of x read.fwf(file,widths,header=FALSE,sep="",as.is=FALSE) rev(x) reverses the elements of x read a table of f ixed width f ormatted data into a ’data.frame’; widths sort(x) sorts the elements of x in increasing order; to sort in decreasing is an integer vector, giving the widths of the fixed-width fields order: rev(sort(x)) save(file,...) saves the specified objects (...) in the XDR platform- cut(x,breaks) divides x into intervals (factors); breaks is the number independent binary format of cut intervals or a vector of cut points 80 save.image(file) saves all objects Definitely obtain these PDF files! Guy Yollin (Copyright © 2011) Introduction to R 5 / 132 Other worthwhile texts mm 40 60 80 100 120 R in a Nutshell: A Desktop A Beginner's Guide to R Quick Reference Zuur, Ieno, Meesters Joseph Adler Springer, 2009 O'Reilly40 Media, 2009 60 80 Guy Yollin (Copyright © 2011) Introduction to R 6 / 132 Experience with other statistical computing languages mm 40 60 80 100 120 For those with experience in MATLAB, David Hiebeler has created a MATLAB/R cross reference document: http://www.math.umaine.edu/~hiebeler/comp/matlabR.pdf40 For those with experience in SAS, SPSS, or Stata, Robert Muenchen has written R books for this audience: 60 http://r4stats.com 80 Guy Yollin (Copyright © 2011) Introduction to R 7 / 132 Outline 1 R language references mm 40 60 80 100 120 2 R overview and history 3 R language and environment basics 4 The working directory, data files, and data manipulation 40 5 Basic statistics and the normal distribution 6 Basic plotting 7 Working with time series in R 60 8 Variable scoping in R 9 The R help system 10 Web resources80 for R 11 IDE editors for R Guy Yollin (Copyright © 2011) Introduction to R 8 / 132 What

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    128 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us