1+1
7-8
[1] -1
(2+5i) + (3-1i)
[1] 5+4i
4/2
[1] 2
2^5
[1] 32
sqrt(25)
[1] 5
sqrt(16)
[1] 4
sqrt(144)
[1] 12
log(2)
log(10)
[1] 2.302585
log(2.72)
[1] 1.000632
log10(10)
[1] 1

Quetstion 1: Compute the log base 5 of 10 and the log of 10.

log(10,5) 
[1] 1.430677
log(10,10)
[1] 1
log(100,4)
[1] 3.321928
#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=(129)/(412)
BA
[1] 0.3131068
#ALternative Solution
N_Hits =129
At_Bats = 412
BA<-N_Hits/At_Bats
BA
[1] 0.3131068

Batting_Average=round(BA,digits = 3)
Batting_Average
[1] 0.313

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

#Answer
N_Hits = 42
At_Bats1 = 212
Bat_Average<-N_Hits/At_Bats1
BattingAverage=round(Bat_Average,digits =3)
BattingAverage
[1] 0.198
#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
OBP_Adj = round(OBP,digits =3)
OBP_Adj
[1] 0.428

*#Question_3:Compute the OBP for a player with the following general stats:

#AB=565,H=156,BB=65,HBP=3,SF=7
OBP = (156+65+3)/(565+65+3+156+7)
OBP_adj = round(OBP, digits = 3)
OBP_adj
[1] 0.281
3==8
[1] FALSE
2==3
[1] FALSE
1==1
[1] TRUE
3>=1
[1] TRUE
3>=9
[1] FALSE
7<=10
[1] TRUE
7<=6
[1] FALSE

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

# Logical Disjunction (or)
FALSE | FALSE # False OR False
[1] FALSE
# Logical Conjunction (and)
TRUE & FALSE #True AND False
[1] FALSE
# Logical Conjunction (and)
TRUE & FALSE #True AND False
[1] FALSE
2 < 3 | 1 == 5 # 2<3 is True, 1==5 is False, True OR False is True
[1] TRUE
Total_Bases <- 7 + 4
Total_Bases*4
[1] 44
ls()
 [1] "At_Bats"         "At_Bats1"        "BA"             
 [4] "Bat_Average"     "Batting_Average" "BattingAverage" 
 [7] "N_Hits"          "OBP"             "OBP_adj"        
[10] "OBP_Adj"         "Total_Bases"    
rm(Total_Bases)
   ls()
 [1] "At_Bats"         "At_Bats1"        "BA"             
 [4] "Bat_Average"     "Batting_Average" "BattingAverage" 
 [7] "N_Hits"          "OBP"             "OBP_adj"        
[10] "OBP_Adj"        

Vectors

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_9innings <- c(2,1,0,0,1)
runs_per_9innings
[1] 2 1 0 0 1
hits_per_innings <- c(3,3,4,6,1)
hits_per_innings
[1] 3 3 4 6 1
rep(2, 5)
[1] 2 2 2 2 2
rep(1,4)
[1] 1 1 1 1
1:6
[1] 1 2 3 4 5 6
2:7
[1] 2 3 4 5 6 7
seq(1, 10, by=3)
[1]  1  4  7 10
seq(2,13,by=3)
[1]  2  5  8 11
pitches_by_innings+strikes_by_innings
[1] 21 27 16 34 19
#compare two vecors
pitches_by_innings
[1] 12 15 10 20 10
strikes_by_innings
[1]  9 12  6 14  9
pitches_by_innings == strikes_by_innings
[1] FALSE FALSE FALSE FALSE FALSE
length(pitches_by_innings)
[1] 5
min(pitches_by_innings)
[1] 10
mean(pitches_by_innings)
[1] 13.4
pitches_by_innings
[1] 12 15 10 20 10
pitches_by_innings[1]
[1] 12

Question_5: Get the first element of hits_per_9innings.

hits_per_innings
[1] 3 3 4 6 1
hits_per_innings[1]
[1] 3
pitches_by_innings[length(pitches_by_innings)]
[1] 10

#Question_6: Get the last element of hits_per_9innings.

hits_per_innings
[1] 3 3 4 6 1
hits_per_innings[length(hits_per_innings)]
[1] 1
pitches_by_innings
[1] 12 15 10 20 10
pitches_by_innings[c(2, 3, 4)]
[1] 15 10 20
player_positions <- c("catcher", "pitcher", "infielders", "outfielders")
player_positions
[1] "catcher"     "pitcher"     "infielders" 
[4] "outfielders"

Data Frames

data.frame(bonus = c(2, 3, 1),#in millions 
           active_roster = c("yes", "no", "yes"), 
           salary = c(1.5, 2.5, 1))#in millions 

How to make a Random Sample

sample(1:10, size=5)
[1] 10  9  6  1  3
bar <- data.frame(var1 = LETTERS[1:10], var2 = 1:10)
# Check data frame
bar
n <- 5
samplerows <- sample(1:nrow(bar), size=n) 
# print sample rows
samplerows
[1] 8 1 5 2 9
# extract rows
barsample <- bar[samplerows, ]
# print sample
print(barsample)
bar[sample(1:nrow(bar), n), ]
NA

Using Tables

x <- c("Yes","No","No","Yes","Yes") 
table(x)
x
 No Yes 
  2   3 

Numerical Measures of Center and Spread

sals <- c(12, .4, 5, 2, 50, 8, 3, 1, 4, 0.25)
# the average
mean(sals) 
[1] 8.565
var(sals)
[1] 225.5145
sd(sals)
[1] 15.01714
median(sals)
[1] 3.5
# Tukey's five number summary, usefull for boxplots
# five numbers: min, lower hinge, median, upper hinge, max
fivenum(sals)
[1]  0.25  1.00  3.50  8.00 50.00
summary(sals)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  0.250   1.250   3.500   8.565   7.250  50.000 

How about the Mode?

# Function to find the mode, i.e. most frequent value
getMode <- function(x) {
     ux <- unique(x)
     ux[which.max(tabulate(match(x, ux)))]
 }
getMode(pitches_by_innings)
[1] 10

#Question_7: Find the most frequent value of hits_per_9innings.**

getMode(hits_per_innings)
[1] 3

#Question_8: Summarize the following survey with the table() command: #What is your favorite day of the week to watch baseball? A total of 10 fans submitted this survey. #Saturday, Saturday, Sunday, Monday, Saturday,Tuesday, Sunday, Friday, Friday, Monday

game_day<-c("Saturday", "Saturday", "Sunday", "Monday", "Saturday","Tuesday", "Sunday", "Friday", "Friday", "Monday")

table(game_day)
game_day
  Friday   Monday Saturday   Sunday  Tuesday 
       2        2        3        2        1 

#Question_9: What is the most frequent answer recorded in the survey? Use the getMode function to compute results.

getMode(game_day)
[1] "Saturday"
LS0tCnRpdGxlOiAiR2V0dGluZyBTdGFydGVkIHdpdGggUiIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKCgpgYGB7cn0KMSsxCmBgYAoKCmBgYHtyfQo3LTgKYGBgCmBgYHtyfQooMis1aSkgKyAoMy0xaSkKYGBgCgoKYGBge3J9CjQvMgpgYGAKCmBgYHtyfQoyXjMKMl41CmBgYAoKYGBge3J9CnNxcnQoMjUpCnNxcnQoMTYpCnNxcnQoMTQ0KQpgYGAKCmBgYHtyfQpsb2coMikKYGBgCgoKYGBge3J9CmxvZygxMCkKbG9nKDIuNzIpCmBgYAoKYGBge3J9CmxvZzEwKDEwKQpgYGAKCgoqKlF1ZXRzdGlvbiAxOiBDb21wdXRlIHRoZSBsb2cgYmFzZSA1IG9mIDEwIGFuZCB0aGUgbG9nIG9mIDEwLioqCgpgYGB7cn0KbG9nKDEwLDUpICNMb2cgb2YgMTAsQmFzZSA1CmxvZygxMCwxMCkjTG9nIG9mIDEwLCBCYXNlIDEwCmxvZygxMDAsNCkjbG9nIG9mIDEwMCwgQmFzZSA0CmBgYAoKYGBge3J9CiNCYXR0aW5nIEF2ZXJhZ2U9KE5vLiBvZiBIaXRzKS8oTm8uIG9mIEF0IEJhdHMpCiNXaGF0IGlzIHRoZSBiYXR0aW5nIGF2ZXJhZ2Ugb2YgYSBwbGF5ZXIgdGhhdCBiYXRzIDI5IGhpdHMgaW4gMTEyIGF0IGJhdHM/CkJBPSgxMjkpLyg0MTIpCkJBCgojQUx0ZXJuYXRpdmUgU29sdXRpb24KTl9IaXRzID0xMjkKQXRfQmF0cyA9IDQxMgpCQTwtTl9IaXRzL0F0X0JhdHMKQkEKCmBgYAoKYGBge3J9CgpCYXR0aW5nX0F2ZXJhZ2U9cm91bmQoQkEsZGlnaXRzID0gMykKQmF0dGluZ19BdmVyYWdlCmBgYAoKCioqI1F1ZXN0aW9uXzI6V2hhdCBpcyB0aGUgYmF0dGluZyBhdmVyYWdlIG9mIGEgcGxheWVyIHRoYXQgYmF0cyA0MiBoaXRzIGluIDIxMiBhdCBiYXRzPyoqCgpgYGB7cn0KI0Fuc3dlcgpOX0hpdHMgPSA0MgpBdF9CYXRzMSA9IDIxMgpCYXRfQXZlcmFnZTwtTl9IaXRzL0F0X0JhdHMxCkJhdHRpbmdBdmVyYWdlPXJvdW5kKEJhdF9BdmVyYWdlLGRpZ2l0cyA9MykKQmF0dGluZ0F2ZXJhZ2UKYGBgCgoKCmBgYHtyfQojT24gQmFzZSBQZXJjZW50YWdlCiNPQlA9KEgrQkIrSEJQKS8oQXQgQmF0cytCQitIQlArU0YpCiNMZXQgdXMgY29tcHV0ZSB0aGUgT0JQIGZvciBhIHBsYXllciB3aXRoIHRoZSBmb2xsb3dpbmcgZ2VuZXJhbCBzdGF0cwojQUI9NTE1LEg9MTcyLEJCPTg0LEhCUD01LFNGPTYKT0JQPSgxNzIrODQrNSkvKDUxNSs4NCs1KzYpCk9CUApPQlBfQWRqID0gcm91bmQoT0JQLGRpZ2l0cyA9MykKT0JQX0FkagpgYGAKCgoqKiojUXVlc3Rpb25fMzpDb21wdXRlIHRoZSBPQlAgZm9yIGEgcGxheWVyIHdpdGggdGhlIGZvbGxvd2luZyBnZW5lcmFsIHN0YXRzOioqCgpgYGB7cn0KI0FCPTU2NSxIPTE1NixCQj02NSxIQlA9MyxTRj03Ck9CUCA9ICgxNTYrNjUrMykvKDU2NSs2NSszKzE1Nis3KQpPQlBfYWRqID0gcm91bmQoT0JQLCBkaWdpdHMgPSAzKQpPQlBfYWRqCmBgYAoKCmBgYHtyfQozPT04CjI9PTMKMT09MQozPj0xCjM+PTkKNzw9MTAKNzw9NgpgYGAKCgoqKk9mdGVuIHlvdSB3aWxsIHdhbnQgdG8gdGVzdCB3aGV0aGVyIHNvbWV0aGluZyBpcyBsZXNzIHRoYW4sIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBzb21ldGhpbmcuKioKCgpgYGB7cn0KIyBMb2dpY2FsIERpc2p1bmN0aW9uIChvcikKRkFMU0UgfCBGQUxTRSAjIEZhbHNlIE9SIEZhbHNlCmBgYAoKCmBgYHtyfQojIExvZ2ljYWwgQ29uanVuY3Rpb24gKGFuZCkKVFJVRSAmIEZBTFNFICNUcnVlIEFORCBGYWxzZQpgYGAKCmBgYHtyfQojIExvZ2ljYWwgQ29uanVuY3Rpb24gKGFuZCkKVFJVRSAmIEZBTFNFICNUcnVlIEFORCBGYWxzZQpgYGAKCgpgYGB7cn0KMiA8IDMgfCAxID09IDUgIyAyPDMgaXMgVHJ1ZSwgMT09NSBpcyBGYWxzZSwgVHJ1ZSBPUiBGYWxzZSBpcyBUcnVlCmBgYAoKCmBgYHtyfQpUb3RhbF9CYXNlcyA8LSA3ICsgNApUb3RhbF9CYXNlcyo0CmBgYAoKYGBge3J9CmxzKCkKYGBgCgpgYGB7cn0Kcm0oVG90YWxfQmFzZXMpCiAgIGxzKCkKYGBgCgoKKipWZWN0b3JzKioKCmBgYHtyfQpwaXRjaGVzX2J5X2lubmluZ3MgPC1jKDEyLDE1LDEwLDIwLDEwKQpwaXRjaGVzX2J5X2lubmluZ3MKYGBgCgoKCmBgYHtyfQpzdHJpa2VzX2J5X2lubmluZ3MgPC0gYyg5LDEyLDYsMTQsOSkKc3RyaWtlc19ieV9pbm5pbmdzCmBgYAoKCioqUXVlc3Rpb25fNDogRGVmaW5lIHR3byB2ZWN0b3JzLHJ1bnNfcGVyXzlpbm5pbmdzIGFuZCBoaXRzX3Blcl85aW5uaW5ncywgZWFjaCB3aXRoIGZpdmUgZWxlbWVudHMuKioKCgoKYGBge3J9CnJ1bnNfcGVyXzlpbm5pbmdzIDwtIGMoMiwxLDEsMiwxKQpydW5zX3Blcl85aW5uaW5ncwpgYGAKCgoKYGBge3J9CmhpdHNfcGVyX2lubmluZ3MgPC0gYygzLDMsNCw2LDEpCmhpdHNfcGVyX2lubmluZ3MKYGBgCgoKCmBgYHtyfQpyZXAoMiwgNSkKYGBgCgoKCmBgYHtyfQpyZXAoMSw0KQpgYGAKCgoKYGBge3J9CjE6NgpgYGAKCgoKYGBge3J9CjI6NwpgYGAKCmBgYHtyfQpzZXEoMSwgMTAsIGJ5PTMpCmBgYAoKCgoKYGBge3J9CnNlcSgyLDEzLGJ5PTMpCgpgYGAKCgoKYGBge3J9CiNhZGRpbmcgdmVjdG9ycwpwaXRjaGVzX2J5X2lubmluZ3Mrc3RyaWtlc19ieV9pbm5pbmdzICMrIG9wZXJhdG9yCmBgYAoKCgpgYGB7cn0KI2NvbXBhcmUgdHdvIHZlY29ycwpwaXRjaGVzX2J5X2lubmluZ3MKc3RyaWtlc19ieV9pbm5pbmdzCnBpdGNoZXNfYnlfaW5uaW5ncyA9PSBzdHJpa2VzX2J5X2lubmluZ3MKYGBgCgoKCmBgYHtyfQpsZW5ndGgocGl0Y2hlc19ieV9pbm5pbmdzKQoKYGBgCgoKYGBge3J9Cm1pbihwaXRjaGVzX2J5X2lubmluZ3MpCmBgYAoKCgpgYGB7cn0KbWVhbihwaXRjaGVzX2J5X2lubmluZ3MpCgoKYGBgCgoKCmBgYHtyfQpwaXRjaGVzX2J5X2lubmluZ3MKYGBgCgoKCgoKCmBgYHtyfQpwaXRjaGVzX2J5X2lubmluZ3NbMV0KCmBgYAoKCgoqKlF1ZXN0aW9uXzU6IEdldCB0aGUgZmlyc3QgZWxlbWVudCBvZiBoaXRzX3Blcl85aW5uaW5ncy4qKgoKCmBgYHtyfQpoaXRzX3Blcl9pbm5pbmdzCmhpdHNfcGVyX2lubmluZ3NbMV0KYGBgCgoKYGBge3J9CnBpdGNoZXNfYnlfaW5uaW5nc1tsZW5ndGgocGl0Y2hlc19ieV9pbm5pbmdzKV0KCmBgYAoKKiojUXVlc3Rpb25fNjogR2V0IHRoZSBsYXN0IGVsZW1lbnQgb2YgaGl0c19wZXJfOWlubmluZ3MuKioKCgpgYGB7cn0KaGl0c19wZXJfaW5uaW5ncwpoaXRzX3Blcl9pbm5pbmdzW2xlbmd0aChoaXRzX3Blcl9pbm5pbmdzKV0KYGBgCgoKYGBge3J9CnBpdGNoZXNfYnlfaW5uaW5ncwpwaXRjaGVzX2J5X2lubmluZ3NbYygyLCAzLCA0KV0KCmBgYAoKCmBgYHtyfQpwbGF5ZXJfcG9zaXRpb25zIDwtIGMoImNhdGNoZXIiLCAicGl0Y2hlciIsICJpbmZpZWxkZXJzIiwgIm91dGZpZWxkZXJzIikKcGxheWVyX3Bvc2l0aW9ucwpgYGAKCgoqKkRhdGEgRnJhbWVzKioKCgpgYGB7cn0KZGF0YS5mcmFtZShib251cyA9IGMoMiwgMywgMSksI2luIG1pbGxpb25zIAogICAgICAgICAgIGFjdGl2ZV9yb3N0ZXIgPSBjKCJ5ZXMiLCAibm8iLCAieWVzIiksIAogICAgICAgICAgIHNhbGFyeSA9IGMoMS41LCAyLjUsIDEpKSNpbiBtaWxsaW9ucyAKYGBgCgoKCioqSG93IHRvIG1ha2UgYSBSYW5kb20gU2FtcGxlKioKCmBgYHtyfQpzYW1wbGUoMToxMCwgc2l6ZT01KQoKYGBgCgoKCmBgYHtyfQpiYXIgPC0gZGF0YS5mcmFtZSh2YXIxID0gTEVUVEVSU1sxOjEwXSwgdmFyMiA9IDE6MTApCiMgQ2hlY2sgZGF0YSBmcmFtZQpiYXIKYGBgCgoKCgpgYGB7cn0KbiA8LSA1CgpgYGAKCgoKCmBgYHtyfQpzYW1wbGVyb3dzIDwtIHNhbXBsZSgxOm5yb3coYmFyKSwgc2l6ZT1uKSAKIyBwcmludCBzYW1wbGUgcm93cwpzYW1wbGVyb3dzCmBgYAoKCgpgYGB7cn0KIyBleHRyYWN0IHJvd3MKYmFyc2FtcGxlIDwtIGJhcltzYW1wbGVyb3dzLCBdCiMgcHJpbnQgc2FtcGxlCnByaW50KGJhcnNhbXBsZSkKYGBgCgoKCgpgYGB7cn0KYmFyW3NhbXBsZSgxOm5yb3coYmFyKSwgbiksIF0KCmBgYAoKCgoqKlVzaW5nIFRhYmxlcyoqCmBgYHtyfQp4IDwtIGMoIlllcyIsIk5vIiwiTm8iLCJZZXMiLCJZZXMiKSAKdGFibGUoeCkKYGBgCgoKCioqTnVtZXJpY2FsIE1lYXN1cmVzIG9mIENlbnRlciBhbmQgU3ByZWFkKioKCmBgYHtyfQpzYWxzIDwtIGMoMTIsIC40LCA1LCAyLCA1MCwgOCwgMywgMSwgNCwgMC4yNSkKIyB0aGUgYXZlcmFnZQptZWFuKHNhbHMpIApgYGAKCgpgYGB7cn0KdmFyKHNhbHMpCgpgYGAKCgoKYGBge3J9CnNkKHNhbHMpCgpgYGAKCgoKYGBge3J9Cm1lZGlhbihzYWxzKQoKYGBgCgoKCmBgYHtyfQojIFR1a2V5J3MgZml2ZSBudW1iZXIgc3VtbWFyeSwgdXNlZnVsbCBmb3IgYm94cGxvdHMKIyBmaXZlIG51bWJlcnM6IG1pbiwgbG93ZXIgaGluZ2UsIG1lZGlhbiwgdXBwZXIgaGluZ2UsIG1heApmaXZlbnVtKHNhbHMpCmBgYAoKCgpgYGB7cn0Kc3VtbWFyeShzYWxzKQoKYGBgCgoqKkhvdyBhYm91dCB0aGUgTW9kZT8qKgoKYGBge3J9CiMgRnVuY3Rpb24gdG8gZmluZCB0aGUgbW9kZSwgaS5lLiBtb3N0IGZyZXF1ZW50IHZhbHVlCmdldE1vZGUgPC0gZnVuY3Rpb24oeCkgewogICAgIHV4IDwtIHVuaXF1ZSh4KQogICAgIHV4W3doaWNoLm1heCh0YWJ1bGF0ZShtYXRjaCh4LCB1eCkpKV0KIH0KYGBgCgoKCmBgYHtyfQpnZXRNb2RlKHBpdGNoZXNfYnlfaW5uaW5ncykKCmBgYAoKCgoKI1F1ZXN0aW9uXzc6IEZpbmQgdGhlIG1vc3QgZnJlcXVlbnQgdmFsdWUgb2YgaGl0c19wZXJfOWlubmluZ3MuKioKCgpgYGB7cn0KZ2V0TW9kZShoaXRzX3Blcl9pbm5pbmdzKQpgYGAKCioqI1F1ZXN0aW9uXzg6IFN1bW1hcml6ZSB0aGUgZm9sbG93aW5nIHN1cnZleSB3aXRoIHRoZSBgdGFibGUoKWAgY29tbWFuZDoKI1doYXQgaXMgeW91ciBmYXZvcml0ZSBkYXkgb2YgdGhlIHdlZWsgdG8gd2F0Y2ggYmFzZWJhbGw/IEEgdG90YWwgb2YgMTAgZmFucyBzdWJtaXR0ZWQgdGhpcyBzdXJ2ZXkuCiNTYXR1cmRheSwgU2F0dXJkYXksIFN1bmRheSwgTW9uZGF5LCBTYXR1cmRheSxUdWVzZGF5LCBTdW5kYXksIEZyaWRheSwgRnJpZGF5LCBNb25kYXkKKioKCgpgYGB7cn0KZ2FtZV9kYXk8LWMoIlNhdHVyZGF5IiwgIlNhdHVyZGF5IiwgIlN1bmRheSIsICJNb25kYXkiLCAiU2F0dXJkYXkiLCJUdWVzZGF5IiwgIlN1bmRheSIsICJGcmlkYXkiLCAiRnJpZGF5IiwgIk1vbmRheSIpCgp0YWJsZShnYW1lX2RheSkKYGBgCgoKKiojUXVlc3Rpb25fOTogV2hhdCBpcyB0aGUgbW9zdCBmcmVxdWVudCBhbnN3ZXIgcmVjb3JkZWQgaW4gdGhlIHN1cnZleT8gVXNlIHRoZSBnZXRNb2RlIGZ1bmN0aW9uIHRvIGNvbXB1dGUgcmVzdWx0cy4gKioKCgpgYGB7cn0KZ2V0TW9kZShnYW1lX2RheSkKYGBgCgoKCgo=