SlideShare a Scribd company logo
Learning Notes of R

For Python Programmer
R Basic Scalar Types
• R basic scalar data types
  –   integer                ( 1L,2L,3L,…)
  –   numeric                ( 1,2,3,…)
  –   character
  –   complex
  –   logical                (TRUE, FALSE)
      • and(&) , or(|), not(!)
R Basic Scalar Types Constructors
• RScalarType(0) == NULL
  – length(xxx(0)) == 0
• RScalarType(1)
  –   integer              0L/ 0
  –   numeric              0
  –   character            “”
  –   complex              0+0i
  –   logical              FALSE
R Basic Object Types
• R basic data structure types
   –   (row) vector        (In R, everything is vector)
   –   matrix
   –   list
   –   data.frame
   –   factor
   –   environment

• In R the “base" type is a vector, not a scalar.
R Object
Find R Object’s Properties
•   length(object)
•   mode(object) / class(object)/ typeof(obj)
•   attributes(object)
•   attr(object, name)
•   str(object)
Python type(obj)
• R> class(obj)
• R> mode(obj)                class        mode          typeof


• R> typeof(obj)    1      "numeric"     "numeric"      "double"


                   1:10     “integer"    "numeric"      “integer"


                   “1”     "character"   "character"   "character"


                   class   "function"    "function"     "builtin"
Python dir(obj)
• attributes(obj)
• str(object)
• ls()                       (Python> dir() )

• The function attributes(object) returns a list of
  all the non-intrinsic attributes currently
  defined for that object.
R attr(object, name)
• The function attr(object, name) can be used to
  select a specific attribute.
• When it is used on the left hand side of an
  assignment it can be used either to associate a
  new attribute with object or to change an
  existing one.
• For example
     • > attr(z, "dim") <- c(10,10)
  – allows R to treat z as if it were a 10-by-10 matrix.
R character
Python “a,b,c,d,e”.split(“,”)
               (R strsplit)
• strsplit(“a,b,c,d,e”,“,“)
   • (Output R-list)


• unlist(strsplit(“a,b,c,d,e”,“,"))[vector_index]
R paste
• paste(“a”,”b”,sep=“”)
        – Python> “a”+”b”  “ab”
R-List

Python-Dictionary
Python Dictionary (R List)
• Constructor
  – Rlist <- list(key1=value1, … , key_n = value_n)
• Evaluate
  – Rlist$key1           (Python> D[key1])
  – Rlist[[1]]
• Sublist
  – Rlist[key_i]         (output list(key_i=value_i))
Python D[“new_key”]=new_value
• Rlist$new_key = new_value    or
• Rlist$new_key <- new_value
Python> del D[key]
• New_Rlist <- Rlist[-key_index]      or
• New_Rlist <- Rlist[-vector_of_key_index]
Python Dict.keys()
• vector_of_Rlist_keys <- names(Rlist)
     • ( output “vector_of_Rlist_keys” is a R-vector)
R-Vector

Python-List
Python List (R vector)
• [Constructor] vector(mode , length)
  – vector(mode = "character", length = 10)
• 0:10
  – 0:10 == c(0,1,2,3,4,5,6,7,8,9,10)
  – Python> range(0,11) )
• seq(0,1,0.1)
  – seq(0,1,0.1) == 0:10*0.1
  – Matlab> linspace(0,1,0.1)
• rep(0:10, times = 2)
Python List.methods
• vector <- c(vector, other_vector)
        – Python> List.append

• vector[-J] or vector[-(I:J)]
        – Python> List.pop

• subvector <- vector[vector_of_index]
• which( vector == value )
        – Python> List.index(value)
R which
• which( vector == value )
        – Python> List.index(value)

• which( vector < v) or which( vector > v)
• which(arg, arr.in=TRUE)
• http://fortheloveof.co.uk/2010/04/11/r-
  select-specific-elements-or-find-their-index-
  in-a-vector-or-a-matrix/
R vector
• length(vector)
  – Python> len(List)
• names(vector)
• rownames(vector)
Python> element in List
• R> element %in% R-Vector
• R> !(element %in% R-Vector) (not in)
R matrix

R-Vector with Dimension
R-Matrix
• Constructor:
  – matrix( ?? , nrow = ?? , ncol = ?? )
  – as.matrix( ?? )
R-Matrix=R-Vector with Dimension
> x <- 1:15
> class(x)
[1] "integer"

> dim(x) <- c(3, 5)
> class(x)
[1] "matrix"
Names on Matrix
• Just as you can name indices in a vector you
  can (and should!) name columns and rows in a
  matrix with colnames(X) and rownames(X).

• E.g.
  – colname(R-matrix) <- c(name_1,name_2,…)
  – colname(R-matrix) [i] <- name_i
Functions on Matrix
• If X is a matrix apply(X, 1, f) is the result of
  applying f to each row of X; apply(X, 2, f) to
  the columns.
   – Python> map(func,py-List)
Add Columns and Rows
• cbind
E.g.
> cbind(c(1,2,3),c(4,5,6))

• rbind
E.g.
> rbind(c(1,2,3),c(4,5,6))
Data Frame in R

 Explicitly like a list
Explicitly like a list
• When can a list be made into a data.frame?
  – Components must be vectors (numeric, character,
    logical) or factors.
  – All vectors and factors must have the same lengths.
Learning notes of r for python programmer (Temp1)
Python os and R
Python os.method
• getwd()       (Python> os.getcwd() )
• setwd(Path)   (Python> os.chdir(Path))
Control Structures and Looping
if
•   if ( statement1 )
•   statement2
•   else if ( statement3 )
•   statement4
•   else if ( statement5 )
•   statement6
•   else
•   statement8
swtich
• Switch (statement, list)



• Example:
> y <- "fruit"
> switch(y, fruit = "banana", vegetable =
  "broccoli", meat = "beef")
[1] "banana"
for
• for ( name in vector ) statement1



• E.g.
>.for ( ind in 1:10) { print(ind) }
while
• while ( statement1 ) statement2
repeat
• repeat statement



• The repeat statement causes repeated evaluation of
  the body until a break is specifically requested.
• When using repeat, statement must be a block
  statement. You need to both perform some
  computation and test whether or not to break from
  the loop and usually this requires two statements.
Functions in R
Create Function in R
• name <- function(arg_1, arg_2, ...) expression

• E.g.
  – ADD <- function(a,b) a+b
  – ADD <- function(a,b) {c<-a+b}
  – ADD <- function(a,b) {c<-a+b;c}
  – ADD <- function(a,b) {c<-a+b; return(c)}
  – (All these functions are the same functions)
Function Return R-List
• To return more than one item, create a list
  using list()

• E.g.
  – MyFnTest1 <- function(a,b) {c<-a+b;d<-a-b;
    list(r1=c,r2=d)}
  – MyFnTest1 <- function(a,b) {c<-a+b;d<-a-b;
    return(list(r1=c,r2=d))}
  – (These two functions are the same, too)
Python map(func,Py-List)
• apply series methods (to be continued.)
R Time Objects
R Basic Time Objects
• Basic Types
  – Date
  – POSIXct
  – POSIXlt


• Constructors:
  – as.Date
  – as. POSIXct
  – as. POSIXlt
as.POSIXct/ as.POSIXlt
• as. POSIXct( timestamp , origin , tz , …)

• E.g.
  – as. POSIXct( timestamp , origin="1970-01-
    01",tz="CST“, …)
strftime / strptime
• "POSIXlt“/"POSIXct“ to Character
  – strftime(x, format="", tz = "", usetz = FALSE, ...)


• Character to "POSIXlt“
  – strptime(x, format, tz = "")
• E.g.
  – strptime(… ,"%Y-%m-%d %H:%M:%S", tz="CST")
Time to Timestamp
         [Python> time.mktime(…)]
• as.numeric(POSIXlt Object)

• E.g.
  – as.numeric(Sys.time())
R Graph
Types of Graphics
• Base
• Lattice
Base Graphics
• Use function such as
  –   plot
  –   barplot
  –   contour
  –   boxplot
  –   pie
  –   pairs
  –   persp
  –   image
Plot Arguments
•   type = ???
•   axes = FALSE : suppresses axes
•   xlab = “str” : label of x-axis
•   ylab = “str” : label of y-axis
•   sub = “str” : subtitle appear under the x-axis
•   main = “str” : title appear at top of plot
•   xlim = c(lo,hi)
•   ylim = c(lo,hi)
Plot’s type arg
• type =
  – “p” : plots points
  – “l” : plots a line
  – “n” : plots nothing,
          just creates the axes for later use
  – “b” : plots both lines and points
  – “o” : plot overlaid lines and points
  – “h” : plots histogram-like vertical lines
  – “s” : plots step-like lines
Plot Example
• R>
  plot(x=(1:20),y=(11:30),pch=1:20,col=1:20,mai
  n="plot",xlab="x-axis",ylab="y-
  axis",ylim=c(0,30))

• R> example(points)
pch
• 0:18: S-compatible vector symbols.
• 19:25: further R vector symbols.
• 26:31: unused (and ignored).
• 32:127: ASCII characters.
• 128:255 native characters only in a single-byte
  locale and for the symbol font. (128:159 are
  only used on Windows.)
• Ref: http://stat.ethz.ch/R-manual/R-devel/library/graphics/html/points.html
          http://rgraphics.limnology.wisc.edu/
cex
• a numerical vector giving the amount by
  which plotting characters and symbols should
  be scaled relative to the default. This works as
  a multiple of par("cex"). NULL and NA are
  equivalent to 1.0. Note that this does not
  affect annotation: see below.
• E.g.
  – points(c(6,2), c(2,1), pch = 5, cex = 3, col = "red")
  – points(c(6,2), c(2,1), pch = 5, cex = 10, col = "red")
points, lines, text, abline
arrows
par/layout (Matlab> subplot)
• par(mfrow=c(m,n))
  – Matlab> subplot(m,n,?)
pairs
• E.g.
  – R> pairs(iris[,c(1,3,5)])
  – R> example(pairs)
MISC. Code1 (Saving Graph)
• postscript("myfile.ps")
• plot(1:10)
• dev.off()
MISC. Code2 (Saving Graph)
•   windows(record=TRUE, width=7, height=7)
•   Last_30_TXF<-last(TXF,30)plt
•   chartSeries(Last_30_TXF)
•   savePlot(paste("Last30_",unlist(strsplit(filena
    me,"."))[1],sep=""),type = "jpeg",device =
    dev.cur(),restoreConsole = TRUE)
可使用的顏色種類
• R> colors() 可以查出所有顏色
• 可搭配grep找尋想要的色系, 如
• R> grep("red",colors())

• Reference:
•   http://research.stowers-institute.org/efg/R/Color/Chart/
R xts
Tools for xts
• diff
• lag
My XTS’ Tools
•   Integration_of_XTS
•   Indexing_of_XTS
•   XTS_Push_Events_Back
•   Get_XTS_Local_Max
•   Get_XTS_Local_Min
Basic Statistics Tools
Learning notes of r for python programmer (Temp1)
R Statistical Models
Model Formulae
• formula(x, ...)
• as.formula(object, env = parent.frame())



• E.g.
  – R> example(formula)
Learning notes of r for python programmer (Temp1)
MISC. 1 Updating fitted models
• http://cran.r-project.org/doc/manuals/R-
  intro.html#Updating-fitted-models
R Packages
•    library()
•    search()
•    loadedNamespaces()
•   getAnywhere(Package_Name)
•   http://cran.r-project.org/doc/manuals/R-
    intro.html#Namespaces
Random Number Generators
• rnorm
• runif
•
Regular Expression

  Python Re Module
grep
• Pattern_Index <- grep(Pattern, Search_Vector)

• E.g. (quantmod中的 Cl function)
return(x[, grep("Close", colnames(x))])
• hits <- grep( pattern, x )
• Ref: Lecture5v1
R LibSVM (e1071)

http://www.csie.ntu.edu.tw/~cjlin/lib
         svm/R_example
Learning notes of r for python programmer (Temp1)
R CR Tree Method (rpart)

Classification and Regression Tree
Learning notes of r for python programmer (Temp1)
• http://www.statsoft.com/textbook/classificati
  on-and-regression-trees/
• http://www.stat.cmu.edu/~cshalizi/350/lectur
  es/22/lecture-22.pdf
• http://www.stat.wisc.edu/~loh/treeprogs/gui
  de/eqr.pdf
R Adaboost Package (adabag)
adaboost.M1
• 此函數的演算法使用 Freund and Schapire‘s
  Adaboost.M1 algorithm

• 其中 weak learner 的部分使用 CR Tree 也就
  是R中的 rpart package
adaboost.M1’s Training Data Form
• Label Column must be a factor object

(in source code)
fit <- rpart(formula = formula, weights =
   data$pesos, data = data[, -1], maxdepth =
   maxdepth)
flearn <- predict(fit, data = data[, -1], type =
   "class")
R IDE Tools
Learning notes of r for python programmer (Temp1)
Reference
•   http://en.wikipedia.org/wiki/R_(programming_language)
•   http://jekyll.math.byuh.edu/other/howto/R/RE.shtml (Emacs)
•   http://stat.ethz.ch/ESS/
Reference
Graph
• http://addictedtor.free.fr/graphiques/
• http://www.nd.edu/~steve/Rcourse/Lecture2
  v1.pdf
• http://addictedtor.free.fr/graphiques/
• http://www.evc-
  cit.info/psych018/r_intro/r_intro4.html
• http://www.r-tutor.com/r-introduction/data-
  frame
• http://msenux.redwoods.edu/math/R/datafra
  me.php

More Related Content

What's hot (16)

ODP
Functions In Scala
Knoldus Inc.
 
PDF
01. haskell introduction
Sebastian Rettig
 
PPTX
P3 2017 python_regexes
Prof. Wim Van Criekinge
 
PDF
Introduction To Lisp
kyleburton
 
PPTX
Scala for curious
Tim (dev-tim) Zadorozhniy
 
PPT
(Ai lisp)
Ravi Rao
 
PPT
Scala collection
Knoldus Inc.
 
PDF
08. haskell Functions
Sebastian Rettig
 
PDF
20170509 rand db_lesugent
Prof. Wim Van Criekinge
 
PDF
Type classes 101 - classification beyond inheritance
Alexey Raga
 
PDF
Processing data with Python, using standard library modules you (probably) ne...
gjcross
 
PPTX
Types by Adform Research
Vasil Remeniuk
 
PPT
Advance LISP (Artificial Intelligence)
wahab khan
 
ODP
Introduction To Regex in Lasso 8.5
bilcorry
 
PDF
Python3
Jiayun Zhou
 
PDF
Ejercicios de estilo en la programación
Software Guru
 
Functions In Scala
Knoldus Inc.
 
01. haskell introduction
Sebastian Rettig
 
P3 2017 python_regexes
Prof. Wim Van Criekinge
 
Introduction To Lisp
kyleburton
 
Scala for curious
Tim (dev-tim) Zadorozhniy
 
(Ai lisp)
Ravi Rao
 
Scala collection
Knoldus Inc.
 
08. haskell Functions
Sebastian Rettig
 
20170509 rand db_lesugent
Prof. Wim Van Criekinge
 
Type classes 101 - classification beyond inheritance
Alexey Raga
 
Processing data with Python, using standard library modules you (probably) ne...
gjcross
 
Types by Adform Research
Vasil Remeniuk
 
Advance LISP (Artificial Intelligence)
wahab khan
 
Introduction To Regex in Lasso 8.5
bilcorry
 
Python3
Jiayun Zhou
 
Ejercicios de estilo en la programación
Software Guru
 

Viewers also liked (20)

PDF
Meetup Python Nantes - les tests en python
Arthur Lutz
 
PDF
Analysis of Fatal Utah Avalanches with Python. From Scraping, Analysis, to In...
Matt Harrison
 
PDF
Java OOP Programming language (Part 1) - Introduction to Java
OUM SAOKOSAL
 
PDF
Python - Lecture 1
Ravi Kiran Khareedi
 
PPTX
Introduction to Advanced Javascript
Collaboration Technologies
 
PDF
PyCon 2013 : Scripting to PyPi to GitHub and More
Matt Harrison
 
PPT
Operator Overloading
Sardar Alam
 
PDF
Python for All
Pragya Goyal
 
PDF
Installing Python on Mac
Wei-Wen Hsu
 
PDF
Lesson1 python an introduction
Arulalan T
 
PDF
Introduction to python
Yi-Fan Chu
 
PDF
Python master class part 1
Chathuranga Bandara
 
PDF
Introduction to facebook java script sdk
Yi-Fan Chu
 
DOCX
Introduction to Python - Running Notes
RajKumar Rampelli
 
PDF
Introduction to facebook javascript sdk
Yi-Fan Chu
 
PPTX
Lec02 structures (2)
Khuder Altangerel
 
PPTX
Mastering python lesson2
Ruth Marvin
 
PDF
Running openCV project on Mac OS
Wei-Wen Hsu
 
PDF
Concise Notes on Python
Wei-Wen Hsu
 
PPTX
Python Hype?
Brian Ray
 
Meetup Python Nantes - les tests en python
Arthur Lutz
 
Analysis of Fatal Utah Avalanches with Python. From Scraping, Analysis, to In...
Matt Harrison
 
Java OOP Programming language (Part 1) - Introduction to Java
OUM SAOKOSAL
 
Python - Lecture 1
Ravi Kiran Khareedi
 
Introduction to Advanced Javascript
Collaboration Technologies
 
PyCon 2013 : Scripting to PyPi to GitHub and More
Matt Harrison
 
Operator Overloading
Sardar Alam
 
Python for All
Pragya Goyal
 
Installing Python on Mac
Wei-Wen Hsu
 
Lesson1 python an introduction
Arulalan T
 
Introduction to python
Yi-Fan Chu
 
Python master class part 1
Chathuranga Bandara
 
Introduction to facebook java script sdk
Yi-Fan Chu
 
Introduction to Python - Running Notes
RajKumar Rampelli
 
Introduction to facebook javascript sdk
Yi-Fan Chu
 
Lec02 structures (2)
Khuder Altangerel
 
Mastering python lesson2
Ruth Marvin
 
Running openCV project on Mac OS
Wei-Wen Hsu
 
Concise Notes on Python
Wei-Wen Hsu
 
Python Hype?
Brian Ray
 
Ad

Similar to Learning notes of r for python programmer (Temp1) (20)

PPT
Profiling and optimization
g3_nittala
 
PPTX
Introduction to R.pptx
karthikks82
 
PDF
R training2
Hellen Gakuruh
 
PPT
Introduction to R
Happy Garg
 
PDF
An overview of Python 2.7
decoupled
 
PDF
A tour of Python
Aleksandar Veselinovic
 
PPTX
R1-Intro (2udsjhfkjdshfkjsdkfhsdkfsfsffs
sabari Giri
 
PPTX
Introduction to matlab
Khulna University
 
PDF
Python lecture 05
Tanwir Zaman
 
PPTX
Python for R users
Satyarth Praveen
 
PDF
Power of functions in a typed world
Debasish Ghosh
 
PPTX
R language introduction
Shashwat Shriparv
 
PDF
楽々Scalaプログラミング
Tomoharu ASAMI
 
PPTX
Python - Numpy/Pandas/Matplot Machine Learning Libraries
Andrew Ferlitsch
 
KEY
R for Pirates. ESCCONF October 27, 2011
Mandi Walls
 
PPTX
python-numwpyandpandas-170922144956.pptx
smartashammari
 
PPTX
R Functions.pptx
Ramakrishna Reddy Bijjam
 
PDF
Matplotlib adalah pustaka plotting 2D Python yang menghasilkan gambar berkual...
HendraPurnama31
 
PPTX
Language R
Girish Khanzode
 
PDF
Real Time Big Data Management
Albert Bifet
 
Profiling and optimization
g3_nittala
 
Introduction to R.pptx
karthikks82
 
R training2
Hellen Gakuruh
 
Introduction to R
Happy Garg
 
An overview of Python 2.7
decoupled
 
A tour of Python
Aleksandar Veselinovic
 
R1-Intro (2udsjhfkjdshfkjsdkfhsdkfsfsffs
sabari Giri
 
Introduction to matlab
Khulna University
 
Python lecture 05
Tanwir Zaman
 
Python for R users
Satyarth Praveen
 
Power of functions in a typed world
Debasish Ghosh
 
R language introduction
Shashwat Shriparv
 
楽々Scalaプログラミング
Tomoharu ASAMI
 
Python - Numpy/Pandas/Matplot Machine Learning Libraries
Andrew Ferlitsch
 
R for Pirates. ESCCONF October 27, 2011
Mandi Walls
 
python-numwpyandpandas-170922144956.pptx
smartashammari
 
R Functions.pptx
Ramakrishna Reddy Bijjam
 
Matplotlib adalah pustaka plotting 2D Python yang menghasilkan gambar berkual...
HendraPurnama31
 
Language R
Girish Khanzode
 
Real Time Big Data Management
Albert Bifet
 
Ad

More from Chia-Chi Chang (13)

PDF
Power BI x R
Chia-Chi Chang
 
PDF
how to learn quantmod and quantstrat by yourself
Chia-Chi Chang
 
PDF
Communicate with your data 20170104
Chia-Chi Chang
 
PDF
20161110 quantstrat in seattle
Chia-Chi Chang
 
PDF
20130506 mldm monday intorduction to quantmod package
Chia-Chi Chang
 
PDF
Computing Probabilities With R: mining the patterns in lottery
Chia-Chi Chang
 
PDF
ETL in R
Chia-Chi Chang
 
PDF
PyData SF 2016 --- Moving forward through the darkness
Chia-Chi Chang
 
PDF
20160827 open community camp
Chia-Chi Chang
 
PDF
20160827 open community camp
Chia-Chi Chang
 
PDF
20130325 mldm monday spide r
Chia-Chi Chang
 
PDF
20130107 MLDM Monday
Chia-Chi Chang
 
PDF
素食丙級考試流程重點整理
Chia-Chi Chang
 
Power BI x R
Chia-Chi Chang
 
how to learn quantmod and quantstrat by yourself
Chia-Chi Chang
 
Communicate with your data 20170104
Chia-Chi Chang
 
20161110 quantstrat in seattle
Chia-Chi Chang
 
20130506 mldm monday intorduction to quantmod package
Chia-Chi Chang
 
Computing Probabilities With R: mining the patterns in lottery
Chia-Chi Chang
 
ETL in R
Chia-Chi Chang
 
PyData SF 2016 --- Moving forward through the darkness
Chia-Chi Chang
 
20160827 open community camp
Chia-Chi Chang
 
20160827 open community camp
Chia-Chi Chang
 
20130325 mldm monday spide r
Chia-Chi Chang
 
20130107 MLDM Monday
Chia-Chi Chang
 
素食丙級考試流程重點整理
Chia-Chi Chang
 

Learning notes of r for python programmer (Temp1)

  • 1. Learning Notes of R For Python Programmer
  • 2. R Basic Scalar Types • R basic scalar data types – integer ( 1L,2L,3L,…) – numeric ( 1,2,3,…) – character – complex – logical (TRUE, FALSE) • and(&) , or(|), not(!)
  • 3. R Basic Scalar Types Constructors • RScalarType(0) == NULL – length(xxx(0)) == 0 • RScalarType(1) – integer 0L/ 0 – numeric 0 – character “” – complex 0+0i – logical FALSE
  • 4. R Basic Object Types • R basic data structure types – (row) vector (In R, everything is vector) – matrix – list – data.frame – factor – environment • In R the “base" type is a vector, not a scalar.
  • 6. Find R Object’s Properties • length(object) • mode(object) / class(object)/ typeof(obj) • attributes(object) • attr(object, name) • str(object)
  • 7. Python type(obj) • R> class(obj) • R> mode(obj) class mode typeof • R> typeof(obj) 1 "numeric" "numeric" "double" 1:10 “integer" "numeric" “integer" “1” "character" "character" "character" class "function" "function" "builtin"
  • 8. Python dir(obj) • attributes(obj) • str(object) • ls() (Python> dir() ) • The function attributes(object) returns a list of all the non-intrinsic attributes currently defined for that object.
  • 9. R attr(object, name) • The function attr(object, name) can be used to select a specific attribute. • When it is used on the left hand side of an assignment it can be used either to associate a new attribute with object or to change an existing one. • For example • > attr(z, "dim") <- c(10,10) – allows R to treat z as if it were a 10-by-10 matrix.
  • 11. Python “a,b,c,d,e”.split(“,”) (R strsplit) • strsplit(“a,b,c,d,e”,“,“) • (Output R-list) • unlist(strsplit(“a,b,c,d,e”,“,"))[vector_index]
  • 12. R paste • paste(“a”,”b”,sep=“”) – Python> “a”+”b”  “ab”
  • 14. Python Dictionary (R List) • Constructor – Rlist <- list(key1=value1, … , key_n = value_n) • Evaluate – Rlist$key1 (Python> D[key1]) – Rlist[[1]] • Sublist – Rlist[key_i] (output list(key_i=value_i))
  • 15. Python D[“new_key”]=new_value • Rlist$new_key = new_value or • Rlist$new_key <- new_value
  • 16. Python> del D[key] • New_Rlist <- Rlist[-key_index] or • New_Rlist <- Rlist[-vector_of_key_index]
  • 17. Python Dict.keys() • vector_of_Rlist_keys <- names(Rlist) • ( output “vector_of_Rlist_keys” is a R-vector)
  • 19. Python List (R vector) • [Constructor] vector(mode , length) – vector(mode = "character", length = 10) • 0:10 – 0:10 == c(0,1,2,3,4,5,6,7,8,9,10) – Python> range(0,11) ) • seq(0,1,0.1) – seq(0,1,0.1) == 0:10*0.1 – Matlab> linspace(0,1,0.1) • rep(0:10, times = 2)
  • 20. Python List.methods • vector <- c(vector, other_vector) – Python> List.append • vector[-J] or vector[-(I:J)] – Python> List.pop • subvector <- vector[vector_of_index] • which( vector == value ) – Python> List.index(value)
  • 21. R which • which( vector == value ) – Python> List.index(value) • which( vector < v) or which( vector > v) • which(arg, arr.in=TRUE) • http://fortheloveof.co.uk/2010/04/11/r- select-specific-elements-or-find-their-index- in-a-vector-or-a-matrix/
  • 22. R vector • length(vector) – Python> len(List) • names(vector) • rownames(vector)
  • 23. Python> element in List • R> element %in% R-Vector • R> !(element %in% R-Vector) (not in)
  • 25. R-Matrix • Constructor: – matrix( ?? , nrow = ?? , ncol = ?? ) – as.matrix( ?? )
  • 26. R-Matrix=R-Vector with Dimension > x <- 1:15 > class(x) [1] "integer" > dim(x) <- c(3, 5) > class(x) [1] "matrix"
  • 27. Names on Matrix • Just as you can name indices in a vector you can (and should!) name columns and rows in a matrix with colnames(X) and rownames(X). • E.g. – colname(R-matrix) <- c(name_1,name_2,…) – colname(R-matrix) [i] <- name_i
  • 28. Functions on Matrix • If X is a matrix apply(X, 1, f) is the result of applying f to each row of X; apply(X, 2, f) to the columns. – Python> map(func,py-List)
  • 29. Add Columns and Rows • cbind E.g. > cbind(c(1,2,3),c(4,5,6)) • rbind E.g. > rbind(c(1,2,3),c(4,5,6))
  • 30. Data Frame in R Explicitly like a list
  • 31. Explicitly like a list • When can a list be made into a data.frame? – Components must be vectors (numeric, character, logical) or factors. – All vectors and factors must have the same lengths.
  • 34. Python os.method • getwd() (Python> os.getcwd() ) • setwd(Path) (Python> os.chdir(Path))
  • 36. if • if ( statement1 ) • statement2 • else if ( statement3 ) • statement4 • else if ( statement5 ) • statement6 • else • statement8
  • 37. swtich • Switch (statement, list) • Example: > y <- "fruit" > switch(y, fruit = "banana", vegetable = "broccoli", meat = "beef") [1] "banana"
  • 38. for • for ( name in vector ) statement1 • E.g. >.for ( ind in 1:10) { print(ind) }
  • 39. while • while ( statement1 ) statement2
  • 40. repeat • repeat statement • The repeat statement causes repeated evaluation of the body until a break is specifically requested. • When using repeat, statement must be a block statement. You need to both perform some computation and test whether or not to break from the loop and usually this requires two statements.
  • 42. Create Function in R • name <- function(arg_1, arg_2, ...) expression • E.g. – ADD <- function(a,b) a+b – ADD <- function(a,b) {c<-a+b} – ADD <- function(a,b) {c<-a+b;c} – ADD <- function(a,b) {c<-a+b; return(c)} – (All these functions are the same functions)
  • 43. Function Return R-List • To return more than one item, create a list using list() • E.g. – MyFnTest1 <- function(a,b) {c<-a+b;d<-a-b; list(r1=c,r2=d)} – MyFnTest1 <- function(a,b) {c<-a+b;d<-a-b; return(list(r1=c,r2=d))} – (These two functions are the same, too)
  • 44. Python map(func,Py-List) • apply series methods (to be continued.)
  • 46. R Basic Time Objects • Basic Types – Date – POSIXct – POSIXlt • Constructors: – as.Date – as. POSIXct – as. POSIXlt
  • 47. as.POSIXct/ as.POSIXlt • as. POSIXct( timestamp , origin , tz , …) • E.g. – as. POSIXct( timestamp , origin="1970-01- 01",tz="CST“, …)
  • 48. strftime / strptime • "POSIXlt“/"POSIXct“ to Character – strftime(x, format="", tz = "", usetz = FALSE, ...) • Character to "POSIXlt“ – strptime(x, format, tz = "") • E.g. – strptime(… ,"%Y-%m-%d %H:%M:%S", tz="CST")
  • 49. Time to Timestamp [Python> time.mktime(…)] • as.numeric(POSIXlt Object) • E.g. – as.numeric(Sys.time())
  • 51. Types of Graphics • Base • Lattice
  • 52. Base Graphics • Use function such as – plot – barplot – contour – boxplot – pie – pairs – persp – image
  • 53. Plot Arguments • type = ??? • axes = FALSE : suppresses axes • xlab = “str” : label of x-axis • ylab = “str” : label of y-axis • sub = “str” : subtitle appear under the x-axis • main = “str” : title appear at top of plot • xlim = c(lo,hi) • ylim = c(lo,hi)
  • 54. Plot’s type arg • type = – “p” : plots points – “l” : plots a line – “n” : plots nothing, just creates the axes for later use – “b” : plots both lines and points – “o” : plot overlaid lines and points – “h” : plots histogram-like vertical lines – “s” : plots step-like lines
  • 55. Plot Example • R> plot(x=(1:20),y=(11:30),pch=1:20,col=1:20,mai n="plot",xlab="x-axis",ylab="y- axis",ylim=c(0,30)) • R> example(points)
  • 56. pch • 0:18: S-compatible vector symbols. • 19:25: further R vector symbols. • 26:31: unused (and ignored). • 32:127: ASCII characters. • 128:255 native characters only in a single-byte locale and for the symbol font. (128:159 are only used on Windows.) • Ref: http://stat.ethz.ch/R-manual/R-devel/library/graphics/html/points.html http://rgraphics.limnology.wisc.edu/
  • 57. cex • a numerical vector giving the amount by which plotting characters and symbols should be scaled relative to the default. This works as a multiple of par("cex"). NULL and NA are equivalent to 1.0. Note that this does not affect annotation: see below. • E.g. – points(c(6,2), c(2,1), pch = 5, cex = 3, col = "red") – points(c(6,2), c(2,1), pch = 5, cex = 10, col = "red")
  • 60. par/layout (Matlab> subplot) • par(mfrow=c(m,n)) – Matlab> subplot(m,n,?)
  • 61. pairs • E.g. – R> pairs(iris[,c(1,3,5)]) – R> example(pairs)
  • 62. MISC. Code1 (Saving Graph) • postscript("myfile.ps") • plot(1:10) • dev.off()
  • 63. MISC. Code2 (Saving Graph) • windows(record=TRUE, width=7, height=7) • Last_30_TXF<-last(TXF,30)plt • chartSeries(Last_30_TXF) • savePlot(paste("Last30_",unlist(strsplit(filena me,"."))[1],sep=""),type = "jpeg",device = dev.cur(),restoreConsole = TRUE)
  • 64. 可使用的顏色種類 • R> colors() 可以查出所有顏色 • 可搭配grep找尋想要的色系, 如 • R> grep("red",colors()) • Reference: • http://research.stowers-institute.org/efg/R/Color/Chart/
  • 65. R xts
  • 66. Tools for xts • diff • lag
  • 67. My XTS’ Tools • Integration_of_XTS • Indexing_of_XTS • XTS_Push_Events_Back • Get_XTS_Local_Max • Get_XTS_Local_Min
  • 71. Model Formulae • formula(x, ...) • as.formula(object, env = parent.frame()) • E.g. – R> example(formula)
  • 73. MISC. 1 Updating fitted models • http://cran.r-project.org/doc/manuals/R- intro.html#Updating-fitted-models
  • 75. library() • search() • loadedNamespaces() • getAnywhere(Package_Name) • http://cran.r-project.org/doc/manuals/R- intro.html#Namespaces
  • 78. Regular Expression Python Re Module
  • 79. grep • Pattern_Index <- grep(Pattern, Search_Vector) • E.g. (quantmod中的 Cl function) return(x[, grep("Close", colnames(x))])
  • 80. • hits <- grep( pattern, x ) • Ref: Lecture5v1
  • 83. R CR Tree Method (rpart) Classification and Regression Tree
  • 85. • http://www.statsoft.com/textbook/classificati on-and-regression-trees/ • http://www.stat.cmu.edu/~cshalizi/350/lectur es/22/lecture-22.pdf • http://www.stat.wisc.edu/~loh/treeprogs/gui de/eqr.pdf
  • 86. R Adaboost Package (adabag)
  • 87. adaboost.M1 • 此函數的演算法使用 Freund and Schapire‘s Adaboost.M1 algorithm • 其中 weak learner 的部分使用 CR Tree 也就 是R中的 rpart package
  • 88. adaboost.M1’s Training Data Form • Label Column must be a factor object (in source code) fit <- rpart(formula = formula, weights = data$pesos, data = data[, -1], maxdepth = maxdepth) flearn <- predict(fit, data = data[, -1], type = "class")
  • 91. Reference • http://en.wikipedia.org/wiki/R_(programming_language) • http://jekyll.math.byuh.edu/other/howto/R/RE.shtml (Emacs) • http://stat.ethz.ch/ESS/
  • 94. • http://www.nd.edu/~steve/Rcourse/Lecture2 v1.pdf • http://addictedtor.free.fr/graphiques/ • http://www.evc- cit.info/psych018/r_intro/r_intro4.html • http://www.r-tutor.com/r-introduction/data- frame • http://msenux.redwoods.edu/math/R/datafra me.php