# R data structures
# VECTORS
#Create vectors of data for three medical patients
subject_name <- c("John Doe", "Jane Doe", "Steve Graves")
temperature <- c(98.1, 98.6, 101.4)
flu_status <- c(FALSE, FALSE, TRUE)
#Access the second element in body temperature vector
temperature[2]
[1] 98.6
#Examples of accessing items in vector
#Include items in the range 2 to 3
temperature[2:3]
[1] 98.6 101.4
#Exclude item 2 using the minus sign
temperature[-2]
[1] 98.1 101.4
#Use a vector to indicate whether to include item
temperature[c(TRUE, TRUE, FALSE)]
[1] 98.1 98.6
#I had started recreating the notebook R Data Structure; however, in class we did not go over all the steps included in the notebook. Instead we did the following (see below):
#We changed the names to President names, and also salary and application
president_name <- c("Trump", "Biden", "Washington")
salary <- c(400000, 400000, 25000) # Approximate annual salaries (in USD)
application_status <- c(TRUE, TRUE, TRUE) # Assuming all applied successfully
#Access the second name in the president_name vector
president_name[2]
[1] "Biden"
#Include items in the range 2 to 3
salary[2:3]
[1] 400000 25000
#Exclude item 2 using the minus sign
salary[-2]
[1] 400000 25000
#Use a vector to indicate whether to include item
salary[c(TRUE, TRUE, FALSE)]
[1] 4e+05 4e+05
#Add ordered factor, in this case we used government_expenditure
government_expenditure <- factor(c("LOW", "MODERATE", "HIGH"),
levels = c("LOW", "MODERATE", "HIGH"),
ordered = TRUE)
#Check for government_expenditure greater than moderate
government_expenditure > "MODERATE"
[1] FALSE FALSE TRUE
#In which of the cases is the level grater than model, here it is our answer:
#Retrieve the name of the first president
president_name[1]
[1] "Trump"
salary[1]
[1] 4e+05
application_status[1]
[1] TRUE
government_expenditure[1]
[1] LOW
Levels: LOW < MODERATE < HIGH
#Create list for presidency
subject1 <- list(fullname = president_name[1],
salary = salary[1],
application_status = application_status[1],
government_expenditure = government_expenditure[1])
#Display the presidency
subject1
$fullname
[1] "Trump"
$salary
[1] 4e+05
$application_status
[1] TRUE
$government_expenditure
[1] LOW
Levels: LOW < MODERATE < HIGH
#Lets create a presidency data set
presidency_dataset <- data.frame(president_name, salary, application_status, government_expenditure, stringsAsFactors = FALSE)
#Display the data frame
presidency_dataset
#How to access elements in the dataset
#Get a single column
presidency_dataset$president_name
[1] "Trump" "Biden" "Washington"
#Get several columns by specifying a vector of names
presidency_dataset[c("salary", "application_status")]
#Here, we see that this is the same as above, extracting temperature and flu_status
presidency_dataset[2:3]
#Accessing by row and column
presidency_dataset[2, 2]
[1] 4e+05
#Accessing several rows and several columns using vectors
presidency_dataset[c(1, 2), c(2, 3)]
#Column 1, all rows
presidency_dataset[, 1]
[1] "Trump" "Biden" "Washington"
#Row 1, all columns
presidency_dataset[1, ]
#All rows and all columns
presidency_dataset[ , ]
#Hence, the following are equivalent
presidency_dataset[c(1, 3), c("president_name", "application_status")]
presidency_dataset[-2, c(-1, -3, -5, -6)]
#Matrices
# Create a matrix named 'm1' using the matrix() function
# The c(1, 2, 3, 4) creates a vector containing the elements 1, 2, 3, and 4
# The nrow=2 specifies that the matrix should have 2 rows
m1<-matrix(c(1,2,3,4),nrow=2)
m1
[,1] [,2]
[1,] 1 3
[2,] 2 4
m2<-matrix(c(1,2,3,4),ncol = 2)
m2
[,1] [,2]
[1,] 1 3
[2,] 2 4
m1[1,1]
[1] 1
m2[2,1]
[1] 2
#Creating a 2x3 matrix
m3 <- matrix(c(1,2,3,4,5,6), nrow=2)
m3
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
m4 <- matrix (c(2,3,7,9,11,10i),ncol = 2)
m4
[,1] [,2]
[1,] 2+0i 9+ 0i
[2,] 3+0i 11+ 0i
[3,] 7+0i 0+10i
#Let's retrive the first row
m4[1,]
[1] 2+0i 9+0i
#Let's retrieve the second column of the matrix m4
m4[,2]
[1] 9+ 0i 11+ 0i 0+10i
LS0tCnRpdGxlOiAiUiBkYXRhIHN0cnVjdHVyZXMiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KYGBge3J9CiMgUiBkYXRhIHN0cnVjdHVyZXMKIyBWRUNUT1JTCiNDcmVhdGUgdmVjdG9ycyBvZiBkYXRhIGZvciB0aHJlZSBtZWRpY2FsIHBhdGllbnRzCnN1YmplY3RfbmFtZSA8LSBjKCJKb2huIERvZSIsICJKYW5lIERvZSIsICJTdGV2ZSBHcmF2ZXMiKQp0ZW1wZXJhdHVyZSA8LSBjKDk4LjEsIDk4LjYsIDEwMS40KQpmbHVfc3RhdHVzIDwtIGMoRkFMU0UsIEZBTFNFLCBUUlVFKQojQWNjZXNzIHRoZSBzZWNvbmQgZWxlbWVudCBpbiBib2R5IHRlbXBlcmF0dXJlIHZlY3Rvcgp0ZW1wZXJhdHVyZVsyXQojRXhhbXBsZXMgb2YgYWNjZXNzaW5nIGl0ZW1zIGluIHZlY3RvcgojSW5jbHVkZSBpdGVtcyBpbiB0aGUgcmFuZ2UgMiB0byAzCnRlbXBlcmF0dXJlWzI6M10KI0V4Y2x1ZGUgaXRlbSAyIHVzaW5nIHRoZSBtaW51cyBzaWduCnRlbXBlcmF0dXJlWy0yXQojVXNlIGEgdmVjdG9yIHRvIGluZGljYXRlIHdoZXRoZXIgdG8gaW5jbHVkZSBpdGVtCnRlbXBlcmF0dXJlW2MoVFJVRSwgVFJVRSwgRkFMU0UpXQoKI0kgaGFkIHN0YXJ0ZWQgcmVjcmVhdGluZyB0aGUgbm90ZWJvb2sgUiBEYXRhIFN0cnVjdHVyZTsgaG93ZXZlciwgaW4gY2xhc3Mgd2UgZGlkIG5vdCBnbyBvdmVyIGFsbCB0aGUgc3RlcHMgaW5jbHVkZWQgaW4gdGhlIG5vdGVib29rLiBJbnN0ZWFkIHdlIGRpZCB0aGUgZm9sbG93aW5nIChzZWUgYmVsb3cpOgoKI1dlIGNoYW5nZWQgdGhlIG5hbWVzIHRvIFByZXNpZGVudCBuYW1lcywgYW5kIGFsc28gc2FsYXJ5IGFuZCBhcHBsaWNhdGlvbgpwcmVzaWRlbnRfbmFtZSA8LSBjKCJUcnVtcCIsICJCaWRlbiIsICJXYXNoaW5ndG9uIikKc2FsYXJ5IDwtIGMoNDAwMDAwLCA0MDAwMDAsIDI1MDAwKSAgIyBBcHByb3hpbWF0ZSBhbm51YWwgc2FsYXJpZXMgKGluIFVTRCkKYXBwbGljYXRpb25fc3RhdHVzIDwtIGMoVFJVRSwgVFJVRSwgVFJVRSkgICMgQXNzdW1pbmcgYWxsIGFwcGxpZWQgc3VjY2Vzc2Z1bGx5CiNBY2Nlc3MgdGhlIHNlY29uZCBuYW1lIGluIHRoZSBwcmVzaWRlbnRfbmFtZSB2ZWN0b3IKcHJlc2lkZW50X25hbWVbMl0KI0luY2x1ZGUgaXRlbXMgaW4gdGhlIHJhbmdlIDIgdG8gMwpzYWxhcnlbMjozXQojRXhjbHVkZSBpdGVtIDIgdXNpbmcgdGhlIG1pbnVzIHNpZ24Kc2FsYXJ5Wy0yXQojVXNlIGEgdmVjdG9yIHRvIGluZGljYXRlIHdoZXRoZXIgdG8gaW5jbHVkZSBpdGVtCnNhbGFyeVtjKFRSVUUsIFRSVUUsIEZBTFNFKV0KI0FkZCBvcmRlcmVkIGZhY3RvciwgaW4gdGhpcyBjYXNlIHdlIHVzZWQgZ292ZXJubWVudF9leHBlbmRpdHVyZQpnb3Zlcm5tZW50X2V4cGVuZGl0dXJlIDwtIGZhY3RvcihjKCJMT1ciLCAiTU9ERVJBVEUiLCAiSElHSCIpLAogICAgICAgICAgICAgICAgICAgbGV2ZWxzID0gYygiTE9XIiwgIk1PREVSQVRFIiwgIkhJR0giKSwKICAgICAgICAgICAgICAgICAgIG9yZGVyZWQgPSBUUlVFKQojQ2hlY2sgZm9yIGdvdmVybm1lbnRfZXhwZW5kaXR1cmUgZ3JlYXRlciB0aGFuIG1vZGVyYXRlCmdvdmVybm1lbnRfZXhwZW5kaXR1cmUgPiAiTU9ERVJBVEUiCiNJbiB3aGljaCBvZiB0aGUgY2FzZXMgaXMgdGhlIGxldmVsIGdyYXRlciB0aGFuIG1vZGVsLCBoZXJlIGl0IGlzIG91ciBhbnN3ZXI6CiNSZXRyaWV2ZSB0aGUgbmFtZSBvZiB0aGUgZmlyc3QgcHJlc2lkZW50CnByZXNpZGVudF9uYW1lWzFdCnNhbGFyeVsxXQphcHBsaWNhdGlvbl9zdGF0dXNbMV0KZ292ZXJubWVudF9leHBlbmRpdHVyZVsxXQojQ3JlYXRlIGxpc3QgZm9yIHByZXNpZGVuY3kKc3ViamVjdDEgPC0gbGlzdChmdWxsbmFtZSA9IHByZXNpZGVudF9uYW1lWzFdLCAKICAgICAgICAgICAgICAgICBzYWxhcnkgPSBzYWxhcnlbMV0sCiAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25fc3RhdHVzID0gYXBwbGljYXRpb25fc3RhdHVzWzFdLAogICAgICAgICAgICAgICAgIGdvdmVybm1lbnRfZXhwZW5kaXR1cmUgPSBnb3Zlcm5tZW50X2V4cGVuZGl0dXJlWzFdKQojRGlzcGxheSB0aGUgcHJlc2lkZW5jeQpzdWJqZWN0MQojTGV0cyBjcmVhdGUgYSBwcmVzaWRlbmN5IGRhdGEgc2V0CnByZXNpZGVuY3lfZGF0YXNldCA8LSBkYXRhLmZyYW1lKHByZXNpZGVudF9uYW1lLCBzYWxhcnksIGFwcGxpY2F0aW9uX3N0YXR1cywgZ292ZXJubWVudF9leHBlbmRpdHVyZSwgc3RyaW5nc0FzRmFjdG9ycyA9IEZBTFNFKQogICAgICAgICAgICAgICAgICAgICAKI0Rpc3BsYXkgdGhlIGRhdGEgZnJhbWUKcHJlc2lkZW5jeV9kYXRhc2V0CiNIb3cgdG8gYWNjZXNzIGVsZW1lbnRzIGluIHRoZSBkYXRhc2V0CiNHZXQgYSBzaW5nbGUgY29sdW1uCnByZXNpZGVuY3lfZGF0YXNldCRwcmVzaWRlbnRfbmFtZQojR2V0IHNldmVyYWwgY29sdW1ucyBieSBzcGVjaWZ5aW5nIGEgdmVjdG9yIG9mIG5hbWVzCnByZXNpZGVuY3lfZGF0YXNldFtjKCJzYWxhcnkiLCAiYXBwbGljYXRpb25fc3RhdHVzIildCiNIZXJlLCB3ZSBzZWUgdGhhdCB0aGlzIGlzIHRoZSBzYW1lIGFzIGFib3ZlLCBleHRyYWN0aW5nIHRlbXBlcmF0dXJlIGFuZCBmbHVfc3RhdHVzCnByZXNpZGVuY3lfZGF0YXNldFsyOjNdCiNBY2Nlc3NpbmcgYnkgcm93IGFuZCBjb2x1bW4KcHJlc2lkZW5jeV9kYXRhc2V0WzIsIDJdCiNBY2Nlc3Npbmcgc2V2ZXJhbCByb3dzIGFuZCBzZXZlcmFsIGNvbHVtbnMgdXNpbmcgdmVjdG9ycwpwcmVzaWRlbmN5X2RhdGFzZXRbYygxLCAyKSwgYygyLCAzKV0KI0NvbHVtbiAxLCBhbGwgcm93cwpwcmVzaWRlbmN5X2RhdGFzZXRbLCAxXQojUm93IDEsIGFsbCBjb2x1bW5zCnByZXNpZGVuY3lfZGF0YXNldFsxLCBdCiNBbGwgcm93cyBhbmQgYWxsIGNvbHVtbnMKcHJlc2lkZW5jeV9kYXRhc2V0WyAsIF0KI0hlbmNlLCB0aGUgZm9sbG93aW5nIGFyZSBlcXVpdmFsZW50CnByZXNpZGVuY3lfZGF0YXNldFtjKDEsIDMpLCBjKCJwcmVzaWRlbnRfbmFtZSIsICJhcHBsaWNhdGlvbl9zdGF0dXMiKV0KcHJlc2lkZW5jeV9kYXRhc2V0Wy0yLCBjKC0xLCAtMywgLTUsIC02KV0KI01hdHJpY2VzCiMgQ3JlYXRlIGEgbWF0cml4IG5hbWVkICdtMScgdXNpbmcgdGhlIG1hdHJpeCgpIGZ1bmN0aW9uCiMgVGhlIGMoMSwgMiwgMywgNCkgY3JlYXRlcyBhIHZlY3RvciBjb250YWluaW5nIHRoZSBlbGVtZW50cyAxLCAyLCAzLCBhbmQgNAojIFRoZSBucm93PTIgc3BlY2lmaWVzIHRoYXQgdGhlIG1hdHJpeCBzaG91bGQgaGF2ZSAyIHJvd3MKbTE8LW1hdHJpeChjKDEsMiwzLDQpLG5yb3c9MikKbTEKbTI8LW1hdHJpeChjKDEsMiwzLDQpLG5jb2wgPSAyKQptMgptMVsxLDFdCm0yWzIsMV0KI0NyZWF0aW5nIGEgMngzIG1hdHJpeAptMyA8LSBtYXRyaXgoYygxLDIsMyw0LDUsNiksIG5yb3c9MikKbTMKbTQgPC0gbWF0cml4IChjKDIsMyw3LDksMTEsMTBpKSxuY29sID0gMikKbTQKI0xldCdzIHJldHJpdmUgdGhlIGZpcnN0IHJvdwptNFsxLF0KI0xldCdzIHJldHJpZXZlIHRoZSBzZWNvbmQgY29sdW1uIG9mIHRoZSBtYXRyaXggbTQKbTRbLDJdCmBgYA==