# Addition
2+3
[1] 5
# Division
2/3
[1] 0.6666667
# Exponentiation
2^3 
[1] 8
# Square root
sqrt(2)
[1] 1.414214
# Logarithms
log(2)
[1] 0.6931472

Question 1: Compute the log base 5 of 10 and the log of 10

log10(5)
[1] 0.69897
log(10)
[1] 2.302585

Computing some offensive metrics in Baseball

#Batting Average=(No. of Hits)/(No. of At Bats)
#What is the batting average of a player that bats 29 hits in 112 at bats?
BA=(29)/(112)
BA
[1] 0.2589286
Batting_Average=round(BA,digits = 3)
Batting_Average
[1] 0.259

Question 2: What is the batting average of a player that bats 42 hits in 212 at bats?

#On Base Percentage
#OBP=(H+BB+HBP)/(At Bats+BB+HBP+SF)
#Let us compute the OBP for a player with the following general stats
#AB=515,H=172,BB=84,HBP=5,SF=6
OBP=(172+84+5)/(515+84+5+6)
OBP
[1] 0.4278689
On_Base_Percentage=round(OBP,digits = 3)
On_Base_Percentage
[1] 0.428

Often you will want to test whether something is less than, greater than or equal to something.

#Question_3:Compute the OBP for a player with the following general stats:
#AB=565,H=156,BB=65,HBP=3,SF=7
#OBP=(H+BB+HBP)/(AT Bats+BB=HBP+SF)
OBP = (156+65+3)/(565+65+3+7)
On_Base_Percentage=round(OBP,digits = 3)
On_Base_Percentage
[1] 0.35
# Combination of statements
2 < 3 | 1 == 5 # 2<3 is True, 1==5 is False, True OR False is True
[1] TRUE
Total_Bases <- 6 + 5
Total_Bases*3
[1] 33
ls()
[1] "BA"                 "Batting_Average"    "OBP"               
[4] "On_Base_Percentage" "Total_Bases"       
rm(Total_Bases)

Vector

pitches_by_innings <- c(12, 15, 10, 20, 10) 
pitches_by_innings
[1] 12 15 10 20 10
strikes_by_innings <- c(9, 12, 6, 14, 9)
strikes_by_innings
[1]  9 12  6 14  9
#Question_4: Define two vectors,runs_per_9innings and hits_per_9innings, each with five elements. 
runs_per_9inning<-c(2,5,7,11,13)
hits_per_9innings<-c(11,13,16,18,19)
runs_per_9inning
[1]  2  5  7 11 13
hits_per_9innings
[1] 11 13 16 18 19
# replicate function
rep(2, 5)
[1] 2 2 2 2 2
# consecutive numbers
1:5
[1] 1 2 3 4 5
2:10
[1]  2  3  4  5  6  7  8  9 10
# sequence from 1 to 10 with a step of 2
seq(1, 20, by=3)
[1]  1  4  7 10 13 16 19
# add vectors
pitches_by_innings+strikes_by_innings
[1] 21 27 16 34 19
# compare vectors
pitches_by_innings == strikes_by_innings
[1] FALSE FALSE FALSE FALSE FALSE
# find length of vector
length(pitches_by_innings)
[1] 5
# find average value in vector
mean(pitches_by_innings)
[1] 13.4
pitches_by_innings
[1] 12 15 10 20 10
# If you want to get the first element:
pitches_by_innings[1]
[1] 12
#Question_5: Get the first element of hits_per_9innings.
pitches_by_innings[length(pitches_by_innings)]
[1] 10
#Question_6: Get the last element of hits_per_9innings.
pitches_by_innings[c(2, 3, 4)]
[1] 15 10 20
player_positions <- c("catcher", "pitcher", "infielders", "outfielders")
data.frame(bonus = c(2, 3, 1),#in millions 
           active_roster = c("yes", "no", "yes"), 
           salary = c(1.5, 2.5, 1))#in millions 
sample(1:10, size=5)
[1] 5 4 7 6 1
bar <- data.frame(var1 = LETTERS[1:10], var2 = 1:10)
# Check data frame
bar
n <- 5
LS0tCnRpdGxlOiAiQWN0aXZpdHkgNCIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKCmBgYHtyfQojIEFkZGl0aW9uCjIrMwoKIyBEaXZpc2lvbgoyLzMKCiMgRXhwb25lbnRpYXRpb24KMl4zIAoKIyBTcXVhcmUgcm9vdApzcXJ0KDIpCgojIExvZ2FyaXRobXMKbG9nKDIpCmBgYAoKUXVlc3Rpb24gMTogQ29tcHV0ZSB0aGUgbG9nIGJhc2UgNSBvZiAxMCBhbmQgdGhlIGxvZyBvZiAxMAoKYGBge3J9CmxvZzEwKDUpCgpsb2coMTApCmBgYAoKQ29tcHV0aW5nIHNvbWUgb2ZmZW5zaXZlIG1ldHJpY3MgaW4gQmFzZWJhbGwKCmBgYHtyfQojQmF0dGluZyBBdmVyYWdlPShOby4gb2YgSGl0cykvKE5vLiBvZiBBdCBCYXRzKQojV2hhdCBpcyB0aGUgYmF0dGluZyBhdmVyYWdlIG9mIGEgcGxheWVyIHRoYXQgYmF0cyAyOSBoaXRzIGluIDExMiBhdCBiYXRzPwpCQT0oMjkpLygxMTIpCkJBCmBgYAoKYGBge3J9CkJhdHRpbmdfQXZlcmFnZT1yb3VuZChCQSxkaWdpdHMgPSAzKQpCYXR0aW5nX0F2ZXJhZ2UKYGBgCgpRdWVzdGlvbiAyOiBXaGF0IGlzIHRoZSBiYXR0aW5nIGF2ZXJhZ2Ugb2YgYSBwbGF5ZXIgdGhhdCBiYXRzIDQyIGhpdHMgaW4gMjEyIGF0IGJhdHM/CgpgYGB7cn0KI09uIEJhc2UgUGVyY2VudGFnZQojT0JQPShIK0JCK0hCUCkvKEF0IEJhdHMrQkIrSEJQK1NGKQojTGV0IHVzIGNvbXB1dGUgdGhlIE9CUCBmb3IgYSBwbGF5ZXIgd2l0aCB0aGUgZm9sbG93aW5nIGdlbmVyYWwgc3RhdHMKI0FCPTUxNSxIPTE3MixCQj04NCxIQlA9NSxTRj02Ck9CUD0oMTcyKzg0KzUpLyg1MTUrODQrNSs2KQpPQlAKYGBgCgpgYGB7cn0KT25fQmFzZV9QZXJjZW50YWdlPXJvdW5kKE9CUCxkaWdpdHMgPSAzKQpPbl9CYXNlX1BlcmNlbnRhZ2UKYGBgCgpPZnRlbiB5b3Ugd2lsbCB3YW50IHRvIHRlc3Qgd2hldGhlciBzb21ldGhpbmcgaXMgbGVzcyB0aGFuLCBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gc29tZXRoaW5nLgpgYGB7cn0KI1F1ZXN0aW9uXzM6Q29tcHV0ZSB0aGUgT0JQIGZvciBhIHBsYXllciB3aXRoIHRoZSBmb2xsb3dpbmcgZ2VuZXJhbCBzdGF0czoKI0FCPTU2NSxIPTE1NixCQj02NSxIQlA9MyxTRj03CiNPQlA9KEgrQkIrSEJQKS8oQVQgQmF0cytCQj1IQlArU0YpCk9CUCA9ICgxNTYrNjUrMykvKDU2NSs2NSszKzcpCk9uX0Jhc2VfUGVyY2VudGFnZT1yb3VuZChPQlAsZGlnaXRzID0gMykKT25fQmFzZV9QZXJjZW50YWdlCmBgYAoKCmBgYHtyfQojIENvbWJpbmF0aW9uIG9mIHN0YXRlbWVudHMKMiA8IDMgfCAxID09IDUgIyAyPDMgaXMgVHJ1ZSwgMT09NSBpcyBGYWxzZSwgVHJ1ZSBPUiBGYWxzZSBpcyBUcnVlCmBgYAoKYGBge3J9ClRvdGFsX0Jhc2VzIDwtIDYgKyA1ClRvdGFsX0Jhc2VzKjMKYGBgCgoKYGBge3J9CmxzKCkKYGBgCmBgYHtyfQpybShUb3RhbF9CYXNlcykKYGBgCgoKVmVjdG9yCgpgYGB7cn0KcGl0Y2hlc19ieV9pbm5pbmdzIDwtIGMoMTIsIDE1LCAxMCwgMjAsIDEwKSAKcGl0Y2hlc19ieV9pbm5pbmdzCmBgYAoKYGBge3J9CnN0cmlrZXNfYnlfaW5uaW5ncyA8LSBjKDksIDEyLCA2LCAxNCwgOSkKc3RyaWtlc19ieV9pbm5pbmdzCmBgYAoKYGBge3J9CiNRdWVzdGlvbl80OiBEZWZpbmUgdHdvIHZlY3RvcnMscnVuc19wZXJfOWlubmluZ3MgYW5kIGhpdHNfcGVyXzlpbm5pbmdzLCBlYWNoIHdpdGggZml2ZSBlbGVtZW50cy4gCnJ1bnNfcGVyXzlpbm5pbmc8LWMoMiw1LDcsMTEsMTMpCmhpdHNfcGVyXzlpbm5pbmdzPC1jKDExLDEzLDE2LDE4LDE5KQpydW5zX3Blcl85aW5uaW5nCmhpdHNfcGVyXzlpbm5pbmdzCmBgYAoKYGBge3J9CiMgcmVwbGljYXRlIGZ1bmN0aW9uCnJlcCgyLCA1KQpgYGAKCmBgYHtyfQojIGNvbnNlY3V0aXZlIG51bWJlcnMKMTo1CjI6MTAKYGBgCgpgYGB7cn0KIyBzZXF1ZW5jZSBmcm9tIDEgdG8gMjAgd2l0aCBhIHN0ZXAgb2YgMwpzZXEoMSwgMjAsIGJ5PTMpCmBgYAoKYGBge3J9CiMgYWRkIHZlY3RvcnMKcGl0Y2hlc19ieV9pbm5pbmdzK3N0cmlrZXNfYnlfaW5uaW5ncwpgYGAKCmBgYHtyfQojIGNvbXBhcmUgdmVjdG9ycwpwaXRjaGVzX2J5X2lubmluZ3MgPT0gc3RyaWtlc19ieV9pbm5pbmdzCmBgYAoKYGBge3J9CiMgZmluZCBsZW5ndGggb2YgdmVjdG9yCmxlbmd0aChwaXRjaGVzX2J5X2lubmluZ3MpCmBgYAoKYGBge3J9CiMgZmluZCBhdmVyYWdlIHZhbHVlIGluIHZlY3RvcgptZWFuKHBpdGNoZXNfYnlfaW5uaW5ncykKYGBgCgpgYGB7cn0KcGl0Y2hlc19ieV9pbm5pbmdzCmBgYAoKYGBge3J9CiMgSWYgeW91IHdhbnQgdG8gZ2V0IHRoZSBmaXJzdCBlbGVtZW50OgpwaXRjaGVzX2J5X2lubmluZ3NbMV0KYGBgCgpgYGB7cn0KI1F1ZXN0aW9uXzU6IEdldCB0aGUgZmlyc3QgZWxlbWVudCBvZiBoaXRzX3Blcl85aW5uaW5ncy4KcGl0Y2hlc19ieV9pbm5pbmdzW2xlbmd0aChwaXRjaGVzX2J5X2lubmluZ3MpXQpgYGAKCmBgYHtyfQojUXVlc3Rpb25fNjogR2V0IHRoZSBsYXN0IGVsZW1lbnQgb2YgaGl0c19wZXJfOWlubmluZ3MuCnBpdGNoZXNfYnlfaW5uaW5nc1tjKDIsIDMsIDQpXQpgYGAKCmBgYHtyfQpwbGF5ZXJfcG9zaXRpb25zIDwtIGMoImNhdGNoZXIiLCAicGl0Y2hlciIsICJpbmZpZWxkZXJzIiwgIm91dGZpZWxkZXJzIikKYGBgCgpgYGB7cn0KZGF0YS5mcmFtZShib251cyA9IGMoMiwgMywgMSksI2luIG1pbGxpb25zIAogICAgICAgICAgIGFjdGl2ZV9yb3N0ZXIgPSBjKCJ5ZXMiLCAibm8iLCAieWVzIiksIAogICAgICAgICAgIHNhbGFyeSA9IGMoMS41LCAyLjUsIDEpKSNpbiBtaWxsaW9ucyAKYGBgCgpgYGB7cn0Kc2FtcGxlKDE6MTAsIHNpemU9NSkKYGBgCgpgYGB7cn0KYmFyIDwtIGRhdGEuZnJhbWUodmFyMSA9IExFVFRFUlNbMToxMF0sIHZhcjIgPSAxOjEwKQojIENoZWNrIGRhdGEgZnJhbWUKYmFyCmBgYAoKYGBge3J9Cm4gPC0gNQpgYGAKCgo=