Creating numeric vector 1

2.0.1 Numeric constant

-3.14
## [1] -3.14
1.23e3
## [1] 1230
NA_real_
## [1] NA
typeof(NA_real_)
## [1] "double"

2.0.2 Vectors

c(1, 5, 9)
## [1] 1 5 9
# c( ... ) dot-dot-dot are called ellipsis: any arbitrary number of arguments
rep(1, 5)
## [1] 1 1 1 1 1
# rep(x, times = 1, length.out = NA, each = 1)

R allows positional matching of argument

rep(c(1, 2, 3), 4)   # positional matching of arguments: `x`, then `times`
##  [1] 1 2 3 1 2 3 1 2 3 1 2 3
rep(c(1, 2, 3), times=4)    # `times` is the second argument
##  [1] 1 2 3 1 2 3 1 2 3 1 2 3
rep(x=c(1, 2, 3), times=4)  # keyword arguments of the form name=value
##  [1] 1 2 3 1 2 3 1 2 3 1 2 3
rep(times=4, x=c(1, 2, 3))  # keyword arguments can be given in any order
##  [1] 1 2 3 1 2 3 1 2 3 1 2 3
rep(times=4, c(1, 2, 3))    # mixed positional and keyword arguments
##  [1] 1 2 3 1 2 3 1 2 3 1 2 3

You should avoid partial matching!

2.0.3 Arithmetic progressions seq and :

seq(1, 15, 2) 
## [1]  1  3  5  7  9 11 13 15
seq(from = 1, to = 15, by = 2)
## [1]  1  3  5  7  9 11 13 15
seq(to = 15, by = 2)
## [1]  1  3  5  7  9 11 13 15

length.out argument can also be used

1:10
##  [1]  1  2  3  4  5  6  7  8  9 10
-1:10
##  [1] -1  0  1  2  3  4  5  6  7  8  9 10
-1:-10
##  [1]  -1  -2  -3  -4  -5  -6  -7  -8  -9 -10
-(1:10)
##  [1]  -1  -2  -3  -4  -5  -6  -7  -8  -9 -10
-(1):10
##  [1] -1  0  1  2  3  4  5  6  7  8  9 10

2.0.4 Generating pseudorandom numbers

runif(2) # uniform U(min = 0, max = 1)
## [1] 0.2890321 0.2737911
rnorm(10) # normal N(mean = 0, sd = 1)
##  [1]  0.3983690 -1.9704071  0.5429527  0.7112340 -0.4760648  0.3436260
##  [7] -0.8401715  0.6348456  1.5760105  0.3286002

We are going to see a list of them later!

Sample to sample items from a given vector:

sample(1:10, 5, replace = TRUE)
## [1]  5 10 10 10  2
sample(10, 5, replace = TRUE)
## [1]  9 10 10  3  9

You can use set.seed(42) to specify a state for the Random Number Generator (see help(RNG))

2.0.5 reading data with scan

head data/euraud-20200101-20200630.csv
## # EUR/AUD Exchange Rates
## # Source: Statistical Data Warehouse of the European Central Bank System
## # https://www.ecb.europa.eu/stats/policy_and_exchange_rates/
## # (provided free of charge)
## NA
## 1.6006
## 1.6031
## NA
## NA
## 1.6119

We can use scan:

scan(paste0("https://github.com/gagolews/teaching-data/raw/",
    "master/marek/euraud-20200101-20200630.csv"), comment.char = "#") 
##   [1]     NA 1.6006 1.6031     NA     NA 1.6119 1.6251 1.6195 1.6193 1.6132
##  [11]     NA     NA 1.6117 1.6110 1.6188 1.6115 1.6122     NA     NA 1.6154
##  [21] 1.6177 1.6184 1.6149 1.6127     NA     NA 1.6291 1.6290 1.6299 1.6412
##  [31] 1.6494     NA     NA 1.6521 1.6439 1.6299 1.6282 1.6417     NA     NA
##  [41] 1.6373 1.6260 1.6175 1.6138 1.6151     NA     NA 1.6129 1.6195 1.6142
##  [51] 1.6294 1.6363     NA     NA 1.6384 1.6442 1.6565 1.6672 1.6875     NA
##  [61]     NA 1.6998 1.6911 1.6794 1.6917 1.7103     NA     NA 1.7330 1.7377
##  [71] 1.7389 1.7674 1.7684     NA     NA 1.8198 1.8287 1.8568 1.8635 1.8226
##  [81]     NA     NA 1.8586 1.8315 1.7993 1.8162 1.8209     NA     NA 1.8021
##  [91] 1.7967 1.8053 1.7970 1.8004     NA     NA 1.7790 1.7578 1.7596 1.7444
## [101]     NA     NA     NA     NA 1.7139 1.7299 1.7266 1.7088     NA     NA
## [111] 1.7085 1.7266 1.7199 1.6918 1.6943     NA     NA 1.6795 1.6734 1.6655
## [121] 1.6598     NA     NA     NA 1.7022 1.6825 1.7046 1.6704 1.6613     NA
## [131]     NA 1.6709 1.6625 1.6687 1.6805 1.6805     NA     NA 1.6736 1.6751
## [141] 1.6653 1.6710 1.6694     NA     NA 1.6678 1.6539 1.6565 1.6624 1.6681
## [151]     NA     NA 1.6488 1.6310 1.6280 1.6276 1.6227     NA     NA 1.6156
## [161] 1.6267 1.6220 1.6421 1.6447     NA     NA 1.6476 1.6324 1.6292 1.6356
## [171] 1.6261     NA     NA 1.6292 1.6272 1.6342 1.6321 1.6313     NA     NA
## [181] 1.6406 1.6344
scan("data/euraud-20200101-20200630.csv", comment.char = "#")
##   [1]     NA 1.6006 1.6031     NA     NA 1.6119 1.6251 1.6195 1.6193 1.6132
##  [11]     NA     NA 1.6117 1.6110 1.6188 1.6115 1.6122     NA     NA 1.6154
##  [21] 1.6177 1.6184 1.6149 1.6127     NA     NA 1.6291 1.6290 1.6299 1.6412
##  [31] 1.6494     NA     NA 1.6521 1.6439 1.6299 1.6282 1.6417     NA     NA
##  [41] 1.6373 1.6260 1.6175 1.6138 1.6151     NA     NA 1.6129 1.6195 1.6142
##  [51] 1.6294 1.6363     NA     NA 1.6384 1.6442 1.6565 1.6672 1.6875     NA
##  [61]     NA 1.6998 1.6911 1.6794 1.6917 1.7103     NA     NA 1.7330 1.7377
##  [71] 1.7389 1.7674 1.7684     NA     NA 1.8198 1.8287 1.8568 1.8635 1.8226
##  [81]     NA     NA 1.8586 1.8315 1.7993 1.8162 1.8209     NA     NA 1.8021
##  [91] 1.7967 1.8053 1.7970 1.8004     NA     NA 1.7790 1.7578 1.7596 1.7444
## [101]     NA     NA     NA     NA 1.7139 1.7299 1.7266 1.7088     NA     NA
## [111] 1.7085 1.7266 1.7199 1.6918 1.6943     NA     NA 1.6795 1.6734 1.6655
## [121] 1.6598     NA     NA     NA 1.7022 1.6825 1.7046 1.6704 1.6613     NA
## [131]     NA 1.6709 1.6625 1.6687 1.6805 1.6805     NA     NA 1.6736 1.6751
## [141] 1.6653 1.6710 1.6694     NA     NA 1.6678 1.6539 1.6565 1.6624 1.6681
## [151]     NA     NA 1.6488 1.6310 1.6280 1.6276 1.6227     NA     NA 1.6156
## [161] 1.6267 1.6220 1.6421 1.6447     NA     NA 1.6476 1.6324 1.6292 1.6356
## [171] 1.6261     NA     NA 1.6292 1.6272 1.6342 1.6321 1.6313     NA     NA
## [181] 1.6406 1.6344

What do the following arguments do (use cases)?

  • dec
  • sep
  • what
  • na.strings