Setup

#Importing the necessary packages
library(readr) 
package <U+393C><U+3E31>readr<U+393C><U+3E32> was built under R version 3.5.3
library(knitr) 
package <U+393C><U+3E31>knitr<U+393C><U+3E32> was built under R version 3.5.3
library(readxl)
package <U+393C><U+3E31>readxl<U+393C><U+3E32> was built under R version 3.5.3
library(zoo)
package <U+393C><U+3E31>zoo<U+393C><U+3E32> was built under R version 3.5.3
Attaching package: <U+393C><U+3E31>zoo<U+393C><U+3E32>

The following objects are masked from <U+393C><U+3E31>package:base<U+393C><U+3E32>:

    as.Date, as.Date.numeric

Data Description

The data being analysed in this assignment is the average montly temperatures in Malaysia between the years 1991 and 2016.

Source: https://climateknowledgeportal.worldbank.org/download-data

Read/Import Data

# 1. Importing the data from the working directory.
temp <- read_csv("tas_1991_2016_MYS.csv")
Parsed with column specification:
cols(
  `Temperature - (Celsius)` = col_double(),
  Year = col_double(),
  Month = col_character(),
  Country = col_character(),
  ISO3 = col_character()
)
# 2. Viewing the data and column names.
head(temp)
# 3. Converting months from mmm format to numbers.
temp$Month <- match(temp$Month, month.abb)
# 4. Combining the month and year columns into a new YearMonth column
temp$MonthYear <- as.yearmon(paste(temp$Year, " ", temp$Month), "%Y %m")
# 5. Removing unnecessary columns. 
temp <- temp[-(2:5)]
# 6. Rearranging the columns for presentation. 
temp <- temp[,c(2, 1)]
# 7. Reviewing data.
head(temp)
# 8. Saving data as a data frame. 
temp1 <- data.frame(MonthYear = temp$MonthYear, Temperature = temp$`Temperature - (Celsius)`)
saveRDS(temp1, file = "temp1.RData")

Inspect and Understand

# Checking the structure of the data
str(temp1)
'data.frame':   312 obs. of  2 variables:
 $ MonthYear  : 'yearmon' num  Jan 1991 Feb 1991 Mar 1991 Apr 1991 ...
 $ Temperature: num  25.4 25.3 25.8 26 26.1 ...
#Checking the classes of the variables
class(temp1$MonthYear)
[1] "yearmon"
typeof(temp1$MonthYear)
[1] "double"
class(temp1$Temperature)
[1] "numeric"
typeof(temp1$Temperature)
[1] "double"

Subsetting I

After subsetting the first 10 observations and converting them to a matrix, the data ends up being a matrix with a list of 2. This is due to there being only 2 variables in the original dataset.

#Subsetting first 10 observations
temp2 <- temp1[(1:10),]
head(temp2)
#Converting subsetted data into a matrix
tempmatrix <- matrix(temp2)
#Checking structure of the matrix
str(tempmatrix)
List of 2
 $ : num [1:10] 1991 1991 1991 1991 1991 ...
 $ : num [1:10] 25.4 25.3 25.8 26 26.1 ...
 - attr(*, "dim")= int [1:2] 2 1

Subsetting II

# Subsetting the first and last variable of the dataset
temp3 <- temp2[, 1:2]
head(temp3)
#Saving the dataset as RData
save(temp3, file = "temp3.RData")

Create a new Data Frame

# Creating new variables and observations
G <- factor( c("Very Fast", "Fast", "Normal", "Slow"), levels = c("Very Fast", "Fast", "Normal", "Slow") ,ordered=TRUE)
  
M <- c(120, 105, 80, 30) 
#Converting variables and observations into a data frame
data <- data.frame( Speed = M, Level = G)
head(data)
#View structure of data and levels of ordinal variable
str(data)
'data.frame':   4 obs. of  2 variables:
 $ Speed: num  120 105 80 30
 $ Level: Ord.factor w/ 4 levels "Very Fast"<"Fast"<..: 1 2 3 4
levels(data$Level)
[1] "Very Fast" "Fast"      "Normal"    "Slow"     
#Creating new numeric vector
num <- c(7,15, 4, 9)
#Adding numeric vector to the data frame
data1 <- cbind(data, num)
head(data1)
#Checking structure and attributes of new data frame
str(data1)
'data.frame':   4 obs. of  3 variables:
 $ Speed: num  120 105 80 30
 $ Level: Ord.factor w/ 4 levels "Very Fast"<"Fast"<..: 1 2 3 4
 $ num  : num  7 15 4 9
class(data1$Speed)
[1] "numeric"
class(data1$Level)
[1] "ordered" "factor" 
class(data1$num)
[1] "numeric"



LS0tDQp0aXRsZTogIkFzc2lnbm1lbnQgMSINCmF1dGhvcjogIlNoaXByZW4gSmF5YWRldiBTMzc0NDQyMSINCnN1YnRpdGxlOiBBc3NpZ25tZW50IDENCm91dHB1dDogDQogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQNCi0tLQ0KDQojIyBTZXR1cA0KDQpgYGB7ciwgZWNobyA9IFRSVUUsIHdhcm5pbmdzID0gRkFMU0V9DQojSW1wb3J0aW5nIHRoZSBuZWNlc3NhcnkgcGFja2FnZXMNCg0KbGlicmFyeShyZWFkcikgDQpsaWJyYXJ5KGtuaXRyKSANCmxpYnJhcnkocmVhZHhsKQ0KbGlicmFyeSh6b28pDQoNCmBgYA0KDQoNCg0KIyMgRGF0YSBEZXNjcmlwdGlvbg0KDQpUaGUgZGF0YSBiZWluZyBhbmFseXNlZCBpbiB0aGlzIGFzc2lnbm1lbnQgaXMgdGhlIGF2ZXJhZ2UgbW9udGx5IHRlbXBlcmF0dXJlcyBpbiBNYWxheXNpYSBiZXR3ZWVuIHRoZSB5ZWFycyAxOTkxIGFuZCAyMDE2LiANCg0KU291cmNlOg0KaHR0cHM6Ly9jbGltYXRla25vd2xlZGdlcG9ydGFsLndvcmxkYmFuay5vcmcvZG93bmxvYWQtZGF0YQ0KDQoNCiMjIFJlYWQvSW1wb3J0IERhdGENCg0KYGBge3J9DQoNCiMgMS4gSW1wb3J0aW5nIHRoZSBkYXRhIGZyb20gdGhlIHdvcmtpbmcgZGlyZWN0b3J5Lg0KdGVtcCA8LSByZWFkX2NzdigidGFzXzE5OTFfMjAxNl9NWVMuY3N2IikNCg0KIyAyLiBWaWV3aW5nIHRoZSBkYXRhIGFuZCBjb2x1bW4gbmFtZXMuDQpoZWFkKHRlbXApDQoNCiMgMy4gQ29udmVydGluZyBtb250aHMgZnJvbSBtbW0gZm9ybWF0IHRvIG51bWJlcnMuDQp0ZW1wJE1vbnRoIDwtIG1hdGNoKHRlbXAkTW9udGgsIG1vbnRoLmFiYikNCg0KIyA0LiBDb21iaW5pbmcgdGhlIG1vbnRoIGFuZCB5ZWFyIGNvbHVtbnMgaW50byBhIG5ldyBZZWFyTW9udGggY29sdW1uDQp0ZW1wJE1vbnRoWWVhciA8LSBhcy55ZWFybW9uKHBhc3RlKHRlbXAkWWVhciwgIiAiLCB0ZW1wJE1vbnRoKSwgIiVZICVtIikNCg0KIyA1LiBSZW1vdmluZyB1bm5lY2Vzc2FyeSBjb2x1bW5zLiANCnRlbXAgPC0gdGVtcFstKDI6NSldDQoNCiMgNi4gUmVhcnJhbmdpbmcgdGhlIGNvbHVtbnMgZm9yIHByZXNlbnRhdGlvbi4gDQp0ZW1wIDwtIHRlbXBbLGMoMiwgMSldDQoNCiMgNy4gUmV2aWV3aW5nIGRhdGEuDQpoZWFkKHRlbXApDQoNCiMgOC4gU2F2aW5nIGRhdGEgYXMgYSBkYXRhIGZyYW1lLiANCnRlbXAxIDwtIGRhdGEuZnJhbWUoTW9udGhZZWFyID0gdGVtcCRNb250aFllYXIsIFRlbXBlcmF0dXJlID0gdGVtcCRgVGVtcGVyYXR1cmUgLSAoQ2Vsc2l1cylgKQ0Kc2F2ZVJEUyh0ZW1wMSwgZmlsZSA9ICJ0ZW1wMS5SRGF0YSIpDQoNCmBgYA0KDQojIyBJbnNwZWN0IGFuZCBVbmRlcnN0YW5kDQoNCmBgYHtyfQ0KIyBDaGVja2luZyB0aGUgc3RydWN0dXJlIG9mIHRoZSBkYXRhDQpzdHIodGVtcDEpDQoNCiNDaGVja2luZyB0aGUgY2xhc3NlcyBvZiB0aGUgdmFyaWFibGVzDQpjbGFzcyh0ZW1wMSRNb250aFllYXIpDQp0eXBlb2YodGVtcDEkTW9udGhZZWFyKQ0KDQpjbGFzcyh0ZW1wMSRUZW1wZXJhdHVyZSkNCnR5cGVvZih0ZW1wMSRUZW1wZXJhdHVyZSkNCg0KYGBgDQoNCiMjIFN1YnNldHRpbmcgSQ0KDQpBZnRlciBzdWJzZXR0aW5nIHRoZSBmaXJzdCAxMCBvYnNlcnZhdGlvbnMgYW5kIGNvbnZlcnRpbmcgdGhlbSB0byBhIG1hdHJpeCwgdGhlIGRhdGEgZW5kcyB1cCBiZWluZyBhIG1hdHJpeCB3aXRoIGEgbGlzdCBvZiAyLiBUaGlzIGlzIGR1ZSB0byB0aGVyZSBiZWluZyBvbmx5IDIgdmFyaWFibGVzIGluIHRoZSBvcmlnaW5hbCBkYXRhc2V0LiANCg0KYGBge3J9DQoNCiNTdWJzZXR0aW5nIGZpcnN0IDEwIG9ic2VydmF0aW9ucw0KdGVtcDIgPC0gdGVtcDFbKDE6MTApLF0NCmhlYWQodGVtcDIpDQoNCiNDb252ZXJ0aW5nIHN1YnNldHRlZCBkYXRhIGludG8gYSBtYXRyaXgNCnRlbXBtYXRyaXggPC0gbWF0cml4KHRlbXAyKQ0KDQojQ2hlY2tpbmcgc3RydWN0dXJlIG9mIHRoZSBtYXRyaXgNCnN0cih0ZW1wbWF0cml4KQ0KDQpgYGANCg0KDQojIyBTdWJzZXR0aW5nIElJDQoNCmBgYHtyfQ0KDQojIFN1YnNldHRpbmcgdGhlIGZpcnN0IGFuZCBsYXN0IHZhcmlhYmxlIG9mIHRoZSBkYXRhc2V0DQp0ZW1wMyA8LSB0ZW1wMlssIDE6Ml0NCmhlYWQodGVtcDMpDQoNCiNTYXZpbmcgdGhlIGRhdGFzZXQgYXMgUkRhdGENCnNhdmUodGVtcDMsIGZpbGUgPSAidGVtcDMuUkRhdGEiKQ0KDQpgYGANCg0KIyMgQ3JlYXRlIGEgbmV3IERhdGEgRnJhbWUNCg0KYGBge3J9DQoNCiMgQ3JlYXRpbmcgbmV3IHZhcmlhYmxlcyBhbmQgb2JzZXJ2YXRpb25zDQpHIDwtIGZhY3RvciggYygiVmVyeSBGYXN0IiwgIkZhc3QiLCAiTm9ybWFsIiwgIlNsb3ciKSwgbGV2ZWxzID0gYygiVmVyeSBGYXN0IiwgIkZhc3QiLCAiTm9ybWFsIiwgIlNsb3ciKSAsb3JkZXJlZD1UUlVFKQ0KICANCk0gPC0gYygxMjAsIDEwNSwgODAsIDMwKSANCg0KI0NvbnZlcnRpbmcgdmFyaWFibGVzIGFuZCBvYnNlcnZhdGlvbnMgaW50byBhIGRhdGEgZnJhbWUNCmRhdGEgPC0gZGF0YS5mcmFtZSggU3BlZWQgPSBNLCBMZXZlbCA9IEcpDQpoZWFkKGRhdGEpDQoNCiNWaWV3IHN0cnVjdHVyZSBvZiBkYXRhIGFuZCBsZXZlbHMgb2Ygb3JkaW5hbCB2YXJpYWJsZQ0Kc3RyKGRhdGEpDQpsZXZlbHMoZGF0YSRMZXZlbCkNCg0KI0NyZWF0aW5nIG5ldyBudW1lcmljIHZlY3Rvcg0KbnVtIDwtIGMoNywxNSwgNCwgOSkNCg0KI0FkZGluZyBudW1lcmljIHZlY3RvciB0byB0aGUgZGF0YSBmcmFtZQ0KZGF0YTEgPC0gY2JpbmQoZGF0YSwgbnVtKQ0KaGVhZChkYXRhMSkNCg0KI0NoZWNraW5nIHN0cnVjdHVyZSBhbmQgYXR0cmlidXRlcyBvZiBuZXcgZGF0YSBmcmFtZQ0Kc3RyKGRhdGExKQ0KDQpjbGFzcyhkYXRhMSRTcGVlZCkNCmNsYXNzKGRhdGExJExldmVsKQ0KY2xhc3MoZGF0YTEkbnVtKQ0KDQpgYGANCjxicj4NCjxicj4NCg==