Introduction to R

R as a programming language.

Getting started with R in a few steps

Arithmetrics with R

  • Basic arithmetic operations:+ (addition), - (substraction), * (multiplication), / (division), ^ (exponentiation)
3+5
[1] 8
14/2
[1] 7
  • Basic arithmetic functions
    • logarithmus and exponentials: log2(x), log10(x), exp(x)
    • Others: abs(x), sqrt(x)
log2(6)  
[1] 2.584963
sqrt(36)
[1] 6

Getting help

?sqrt

Parameter (參數) 與 Argument (引數).

  • argument: 【呼叫者】傳給【被呼叫者】的「值」(value)
  • parameter: 【被呼叫者】用來接收【呼叫者】傳來引數的「變數」(variable)

自然語言亂入:欸(), 叫(x, num, pitch).

叫(啊, num = 3, pitch = 'high')

head(cars, n=10)

Data types

Variable and value assignment 變數與賦值 <-

# numeric variable
my_age <- 40
# character variable
my_name <- "shukai"
# logical variable (e.g., are you a student?) y/n
is_student <- TRUE

Install packages

#install.packages("tidyverse")
#install.packages(c("quantmod", "dygraphs"))
library(quantmod)
Loading required package: xts
Loading required package: zoo

Attaching package: ‘zoo’

The following objects are masked from ‘package:base’:

    as.Date, as.Date.numeric

Loading required package: TTR
Registered S3 method overwritten by 'quantmod':
  method            from
  as.zoo.data.frame zoo 
library(dygraphs)
Registered S3 method overwritten by 'htmlwidgets':
  method           from         
  print.htmlwidget tools:rstudio
g_stock_prices <- getSymbols("GOOG", src = "yahoo", from = "2008-01-01", auto.assign = FALSE)
‘getSymbols’ currently uses auto.assign=TRUE by default, but will
use auto.assign=FALSE in 0.5-0. You will still be able to use
‘loadSymbols’ to automatically load data. getOption("getSymbols.env")
and getOption("getSymbols.auto.assign") will still be checked for
alternate defaults.

This message is shown once per session and may be disabled by setting 
options("getSymbols.warning4.0"=FALSE). See ?getSymbols for details.
chartSeries(g_stock_prices)

dygraph(g_stock_prices[,c("GOOG.Close")], main = "Google Stock Price Starting in 2008")
NA
LS0tCnRpdGxlOiAiV2Vlay4yIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgojIEludHJvZHVjdGlvbiB0byBSCgpSIGFzIGEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UuCgojIEdldHRpbmcgc3RhcnRlZCB3aXRoIFIgaW4gYSBmZXcgc3RlcHMKCi0gdHJ5IG91dCB0aGUgY29uc29sZQoKIyMgQXJpdGhtZXRyaWNzIHdpdGggUiAKCi0gQmFzaWMgYXJpdGhtZXRpYyBvcGVyYXRpb25z77yaYCtgIChhZGRpdGlvbiksIGAtYCAoc3Vic3RyYWN0aW9uKSwgYCpgIChtdWx0aXBsaWNhdGlvbiksIGAvYCAoZGl2aXNpb24pLCBgXmAgKGV4cG9uZW50aWF0aW9uKQoKYGBge3J9CjMrNQoxNC8yCmBgYAoKLSBCYXNpYyBhcml0aG1ldGljICoqZnVuY3Rpb25zKioKICAgIC0gbG9nYXJpdGhtdXMgYW5kIGV4cG9uZW50aWFsczogYGxvZzIoeCksIGxvZzEwKHgpLCBleHAoeClgCiAgICAtIE90aGVyczogYGFicyh4KWAsIGBzcXJ0KHgpYAoKYGBge3J9ICAKbG9nMig2KSAgCnNxcnQoMzYpCmBgYAo+IEdldHRpbmcgaGVscAoKYGBge3J9Cj9zcXJ0CmBgYAoKCiMjIFBhcmFtZXRlciAo5Y+D5pW4KSDoiIcgQXJndW1lbnQgKOW8leaVuCkuIAogIC0gYXJndW1lbnQ6IOOAkOWRvOWPq+iAheOAkeWCs+e1puOAkOiiq+WRvOWPq+iAheOAkeeahOOAjOWAvOOAjSh2YWx1ZSkKICAtIHBhcmFtZXRlcjog44CQ6KKr5ZG85Y+r6ICF44CR55So5L6G5o6l5pS244CQ5ZG85Y+r6ICF44CR5YKz5L6G5byV5pW455qE44CM6K6K5pW444CNKHZhcmlhYmxlKQoK6Ieq54S26Kqe6KiA5LqC5YWl77yaYOasuCgpYCwgYOWPqyh4LCBudW0sIHBpdGNoKWAuIAoKCj4gYOWPqyjllYosIG51bSA9IDMsIHBpdGNoID0gJ2hpZ2gnKWAKCgpgYGB7cn0KaGVhZChjYXJzLCBuPTEwKQoKYGBgCgoKIyBEYXRhIHR5cGVzCgotIEJhc2ljICpkYXRhIHR5cGVzKjogKipudW1lcmljLCBjaGFyYWN0ZXIsIGxvZ2ljYWwqKgotIFN1cHBvcnRlZCAqZGF0YSBzdHJ1Y3R1cmUqOiAqKnZlY3RvciwgbWF0cml4LCBmYWN0b3IsIGRhdGEgZnJhbWUqKiAKCgoKCiMgVmFyaWFibGUgYW5kIHZhbHVlIGFzc2lnbm1lbnQg6K6K5pW46IiH6LOm5YC8IGA8LWAKCmBgYHtyfQojIG51bWVyaWMgdmFyaWFibGUKbXlfYWdlIDwtIDQwCiMgY2hhcmFjdGVyIHZhcmlhYmxlCm15X25hbWUgPC0gInNodWthaSIKIyBsb2dpY2FsIHZhcmlhYmxlIChlLmcuLCBhcmUgeW91IGEgc3R1ZGVudD8pIHkvbgppc19zdHVkZW50IDwtIFRSVUUKYGBgCgoKCiMgSW5zdGFsbCBwYWNrYWdlcwoKYGBge3J9CiNpbnN0YWxsLnBhY2thZ2VzKCJ0aWR5dmVyc2UiKQpgYGAKCgoKYGBge3J9CiNpbnN0YWxsLnBhY2thZ2VzKGMoInF1YW50bW9kIiwgImR5Z3JhcGhzIikpCgpgYGAKCgpgYGB7cn0KbGlicmFyeShxdWFudG1vZCkKbGlicmFyeShkeWdyYXBocykKYGBgCgotIExldCdzIGNoZWNrIEdvb2dsZSBzdG9jayBzaW5jZSB0aGUgMjAwOAoKYGBge3J9Cmdfc3RvY2tfcHJpY2VzIDwtIGdldFN5bWJvbHMoIkdPT0ciLCBzcmMgPSAieWFob28iLCBmcm9tID0gIjIwMDgtMDEtMDEiLCBhdXRvLmFzc2lnbiA9IEZBTFNFKQpjaGFydFNlcmllcyhnX3N0b2NrX3ByaWNlcykKYGBgCgpgYGB7cn0KZHlncmFwaChnX3N0b2NrX3ByaWNlc1ssYygiR09PRy5DbG9zZSIpXSwgbWFpbiA9ICJHb29nbGUgU3RvY2sgUHJpY2UgU3RhcnRpbmcgaW4gMjAwOCIpCgpgYGAK