#complex numbers use "i" 
7-8i
[1] 7-8i
log10(10)
[1] 1
log(10) #natural log not base 10
[1] 2.302585
sqrt(25)
[1] 5
log(5,base = (10))
[1] 0.69897

Compute the log base 5 of 10 and the log of 10

#Answers:
log(10,5) #log of ten, base 5
[1] 1.430677
log(10,10) #lof of 10, base 10
[1] 1
log(100,4) #log of 100, base 4
[1] 3.321928
log(10) #log of 10, natural log
[1] 2.302585
log10(10) #log of 10, base 10
[1] 1

Question 1:

#Batting Average is (# hits)/(# at bats)

#What is the batting average of a player that bats 129 hits in 412 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 bats?

#Answers
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 OBP for a player with the following general stats:

#AB=565, H=157, BB=65, HBP=3, SF=7
#OBP=(H+BB+HBP)/(At Bats+BB+HBP+SF)
AB = 565
H = 157
BB = 65
SF = 7
HBP = 3
OBP=(H+BB+HBP)/(AB+BB+HBP+SF)
OBP
[1] 0.3515625

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

3==8
[1] FALSE
2==3
[1] FALSE
1==1
[1] TRUE
3>=1
[1] TRUE
4<8
[1] TRUE
3!=4
[1] TRUE

Comparison Operators

#LOGICAL OPERATOR (OR)

FALSE | FALSE #FALSE OR FALSE
[1] FALSE
FALSE | TRUE #FALSE OR TRUE
[1] TRUE
TRUE | TRUE #TRUE OR TRUE
[1] TRUE
#LOGICAL OPERATOR (AND)
FALSE & FALSE
[1] FALSE
FALSE & TRUE
[1] FALSE
TRUE & TRUE
[1] TRUE
#LOGICAL OPERATOR (NOT)
!FALSE
[1] TRUE
!TRUE
[1] FALSE
#Combination of statements
2 < 3 | 1 == 5 #2<3 is TRUE, 1==5 is FALSE, TRUE OR FALSE is TRUE
[1] TRUE
2<1|2==3
[1] FALSE

Assigning Values to Variables

total_bases<-7+4
total_bases*4
[1] 44

Vectors

pitches_by_innings<-c(12,15,10,20,10)
pitches_by_innings
[1] 12 15 10 20 10

Question 4: Define two vectors, runs_per_innings, and hits_per_innings, each with five elements

strikes_by_innings<-c(19,12,6,14,9)
strikes_by_innings
[1] 19 12  6 14  9
runs_per_innings<-c(3,3,4,1,2)
hits_per_innings<-c(6,8,7,4,5)
rep(5,2)
[1] 5 5
2:7
[1] 2 3 4 5 6 7
seq(1,10,by=3)
[1]  1  4  7 10
#adding vectors
pitches_by_innings+strikes_by_innings # the + operator
[1] 31 27 16 34 19
#compare two vectors
pitches_by_innings==strikes_by_innings
[1] FALSE FALSE FALSE FALSE FALSE
length(pitches_by_innings)
[1] 5
#tells you the length

min(pitches_by_innings)
[1] 10
#tells you the minimum

max(pitches_by_innings)
[1] 20
#tells you the maximum

mean(pitches_by_innings)
[1] 13.4
#tells you the mean 

pitches_by_innings[1]
[1] 12
#returns 1st element (not th element at index 1)

pitches_by_innings[length(pitches_by_innings)]
[1] 10
#returns the last element

pitches_by_innings[c(2,3,4)]
[1] 15 10 20
#returning 2nd, 3rd, 4th elements
#same as saying.....
pitches_by_innings[c(2:4)]
[1] 15 10 20

Vectors as strings or logical values

player_positions<-c("catcher","pitcher","infielders","outfielders")
player_positions
[1] "catcher"     "pitcher"     "infielders"  "outfielders"

Data Frames

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

Using Tables

x<-c("yes","no","no","yes","yes")
table(x)
x
 no yes 
  2   3 

Numerical measures and center of spread

variance = std deviation squared std dev = avg distance from mean

ceo_salaries<-c(12,.4,2,50,8,3,1,4,.25)
mean(ceo_salaries)
[1] 8.961111
median(ceo_salaries)
[1] 3
var(ceo_salaries)
[1] 251.9386
sd(ceo_salaries)
[1] 15.87257

**Fivenum is Tukey’s 5 Number Summary

Gives us: min, Q1, med, Q3, max

fivenum(ceo_salaries)
[1]  0.25  1.00  3.00  8.00 50.00
# 12,.4,2,15,8,3,1,4,.25
#.25,.4,1,2,3,4,8,12,15

Design a function which gives you the MODE

getMode<-function(x) {
  ux<-unique(x)
  ux[which.max(tabulate(match(x,ux)))]

}
#getMode is the name we gave our function
#our function gets the mode
#there is no built-in function to get the mode in R

getMode(pitches_by_innings)
[1] 10
getMode(strikes_by_innings)
[1] 19
strikes_by_innings
[1] 19 12  6 14  9
game_day<-c("Saturday", "Saturday", "Sunday", "Monday", "Saturday","Tuesday", "Sunday", "Friday", "Friday", "Monday")
getMode(game_day)
[1] "Saturday"

unlike Knit, Preview does not run any R code chunks. Instead, the output of the chunk when it was last run in the editor is displayed.

LS0tCnRpdGxlOiAiR2V0dGluZyBTdGFydGVkIFdpdGggUiBQYXJ0IDEiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCgoKYGBge3J9CmBgYAoKCmBgYHtyfQojY29tcGxleCBudW1iZXJzIHVzZSAiaSIgCiMgYWx0ICsgY3RybCArICJpIiBtYWtlcyBhIG5ldyBjaHVuayAKYGBgCgpgYGB7cn0KNy04aQpgYGAKYGBge3J9CmxvZzEwKDEwKSAjYmFzZSB0ZW4KYGBgCgoKYGBge3J9CmxvZygxMCkgI25hdHVyYWwgbG9nIG5vdCBiYXNlIDEwCmBgYAoKCmBgYHtyfQpzcXJ0KDI1KQpgYGAKCgpgYGB7cn0KbG9nKDEwLDUpICNsb2cgYmFzZSA1IG9mIHRlbgpgYGAKYGBge3J9CgpgYGAKCkNvbXB1dGUgdGhlIGxvZyBiYXNlIDUgb2YgMTAgYW5kIHRoZSBsb2cgb2YgMTAKCmBgYHtyfQoKbG9nKDEwLDUpICNsb2cgb2YgdGVuLCBiYXNlIDUKbG9nKDEwLDEwKSAjbG9mIG9mIDEwLCBiYXNlIDEwCmxvZygxMDAsNCkgI2xvZyBvZiAxMDAsIGJhc2UgNApsb2coMTApICNsb2cgb2YgMTAsIG5hdHVyYWwgbG9nCmxvZzEwKDEwKSAjbG9nIG9mIDEwLCBiYXNlIDEwCmBgYAoqKlF1ZXN0aW9uIDE6KioKCmBgYHtyfQojQmF0dGluZyBBdmVyYWdlIGlzICgjIGhpdHMpLygjIGF0IGJhdHMpCgojV2hhdCBpcyB0aGUgYmF0dGluZyBhdmVyYWdlIG9mIGEgcGxheWVyIHRoYXQgYmF0cyAxMjkgaGl0cyBpbiA0MTIgYXQgYmF0cz8KCgpCQT0xMjkvNDEyCkJBCgojQWx0ZXJuYXRpdmUgU29sdXRpb24KTl9oaXRzPTEyOQpBdF9iYXRzPTQxMgpCQTwtTl9oaXRzL0F0X2JhdHMKQkEKQmF0dGluZ19BdmVyYWdlPXJvdW5kKEJBLGRpZ2l0cyA9IDMpCkJhdHRpbmdfQXZlcmFnZQoKCmBgYAoqKlF1ZXN0aW9uIDI6KioKI1doYXQgaXMgdGhlIGJhdHRpbmcgYXZlcmFnZSBvZiBhIHBsYXllciB0aGF0IGJhdHMgNDIgaGl0cyBpbiAyMTIgYmF0cz8KYGBge3J9CiNBbnN3ZXJzCk5fSGl0cz00MgpBdF9CYXRzMT0yMTIKQmF0X0F2ZXJhZ2U8LU5fSGl0cy9BdF9CYXRzMQpCYXR0aW5nQXZlcmFnZT1yb3VuZChCYXRfQXZlcmFnZSxkaWdpdHMgPSAzKQpCYXR0aW5nQXZlcmFnZQpgYGAKCgpgYGB7cn0KI09uIGJhc2UgcGVyY2VudGFnZQojT0JQPShIK0JCK0hCUCkvKEF0IEJhdHMrQkIrSEJQK1NGKQojTGV0IHVzIGNvbXB1dGUgdGhlIE9CUCBmb3IgYSBwbGF5ZXIgd2l0aCB0aGUgZm9sbG93aW5nIGdlbmVyYWwgc3RhdHMKI0FCPTUxNSwgSD0xNzIsIEJCPTg0LCBIQlA9NSwgU0Y9NgpPQlA9KDE3Mis4NCs1KS8oNTE1Kzg0KzUrNikKT0JQCk9CUF9BZGo9cm91bmQoT0JQLCBkaWdpdHMgPSAzKQpPQlBfQWRqCmBgYAoKKipRdWVzdGlvbiAzOioqCkNvbXB1dGUgT0JQIGZvciBhIHBsYXllciB3aXRoIHRoZSBmb2xsb3dpbmcgZ2VuZXJhbCBzdGF0czoKYGBge3J9CiNBQj01NjUsIEg9MTU3LCBCQj02NSwgSEJQPTMsIFNGPTcKI09CUD0oSCtCQitIQlApLyhBQitCQitIQlArU0YpCkFCID0gNTY1CkggPSAxNTcKQkIgPSA2NQpTRiA9IDcKSEJQID0gMwpPQlA9KEgrQkIrSEJQKS8oQUIrQkIrSEJQK1NGKQpPQlAKYGBgCgoqKk9mdGVuIHlvdSB3aWxsIHdhbnQgdG8gdGVzdCB3aGV0aGVyIHNvbWV0aGluZyBpcyBsZXNzIHRoYW4gZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHNvbWV0aGluZyoqCmBgYHtyfQozPT04CjI9PTMKMT09MQozPj0xCjQ8OAozIT00CmBgYAoqKkNvbXBhcmlzb24gT3BlcmF0b3JzKioKCgpgYGB7cn0KI0xPR0lDQUwgT1BFUkFUT1IgKE9SKQoKRkFMU0UgfCBGQUxTRSAjRkFMU0UgT1IgRkFMU0UKRkFMU0UgfCBUUlVFICNGQUxTRSBPUiBUUlVFClRSVUUgfCBUUlVFICNUUlVFIE9SIFRSVUUKYGBgCgoKYGBge3J9CiNMT0dJQ0FMIE9QRVJBVE9SIChBTkQpCkZBTFNFICYgRkFMU0UKRkFMU0UgJiBUUlVFClRSVUUgJiBUUlVFCmBgYAoKCmBgYHtyfQojTE9HSUNBTCBPUEVSQVRPUiAoTk9UKQohRkFMU0UKIVRSVUUKYGBgCgoKYGBge3J9CiNDb21iaW5hdGlvbiBvZiBzdGF0ZW1lbnRzCjIgPCAzIHwgMSA9PSA1IAojMjwzIGlzIFRSVUUsIDE9PTUgaXMgRkFMU0UsIFRSVUUgT1IgRkFMU0UgaXMgVFJVRQpgYGAKCgpgYGB7cn0KMjwxfDI9PTMKI0ZBTFNFIE9SIEZBTFNFCmBgYAoKKipBc3NpZ25pbmcgVmFsdWVzIHRvIFZhcmlhYmxlcyoqCmBgYHtyfQp0b3RhbF9iYXNlczwtNys0CnRvdGFsX2Jhc2VzKjQKYGBgCgoqKlZlY3RvcnMqKgpgYGB7cn0KcGl0Y2hlc19ieV9pbm5pbmdzPC1jKDEyLDE1LDEwLDIwLDEwKQpwaXRjaGVzX2J5X2lubmluZ3MKYGBgCioqUXVlc3Rpb24gNDoqKgpEZWZpbmUgdHdvIHZlY3RvcnMsIHJ1bnNfcGVyX2lubmluZ3MsIGFuZCBoaXRzX3Blcl9pbm5pbmdzLCBlYWNoIHdpdGggZml2ZSBlbGVtZW50cwoKYGBge3J9CnN0cmlrZXNfYnlfaW5uaW5nczwtYygxOSwxMiw2LDE0LDkpCnN0cmlrZXNfYnlfaW5uaW5ncwpgYGAKCgpgYGB7cn0KcnVuc19wZXJfaW5uaW5nczwtYygzLDMsNCwxLDIpCmhpdHNfcGVyX2lubmluZ3M8LWMoNiw4LDcsNCw1KQpgYGAKCgpgYGB7cn0KcmVwKDUsMikKI3JlcGxpY2F0ZSA1LCAyIHRpbWVzCmBgYApgYGB7cn0KMjo3CiNjb25zZWN1dGl2ZSBudW1iZXJzL3NlcmllcwpgYGAKCgpgYGB7cn0Kc2VxKDEsMTAsYnk9MykKI3NlcXVlbmNlIGZyb20gMSB0byAxMCwgd2l0aCBhIHN0ZXAgb2YgMwpgYGAKCgpgYGB7cn0KI2FkZGluZyB2ZWN0b3JzCnBpdGNoZXNfYnlfaW5uaW5ncytzdHJpa2VzX2J5X2lubmluZ3MgIyB0aGUgKyBvcGVyYXRvcgpgYGAKCgpgYGB7cn0KI2NvbXBhcmUgdHdvIHZlY3RvcnMKcGl0Y2hlc19ieV9pbm5pbmdzPT1zdHJpa2VzX2J5X2lubmluZ3MKYGBgCgoKYGBge3J9Cmxlbmd0aChwaXRjaGVzX2J5X2lubmluZ3MpCiN0ZWxscyB5b3UgdGhlIGxlbmd0aAoKbWluKHBpdGNoZXNfYnlfaW5uaW5ncykKI3RlbGxzIHlvdSB0aGUgbWluaW11bQoKbWF4KHBpdGNoZXNfYnlfaW5uaW5ncykKI3RlbGxzIHlvdSB0aGUgbWF4aW11bQoKbWVhbihwaXRjaGVzX2J5X2lubmluZ3MpCiN0ZWxscyB5b3UgdGhlIG1lYW4gCgpwaXRjaGVzX2J5X2lubmluZ3NbMV0KI3JldHVybnMgMXN0IGVsZW1lbnQgKG5vdCB0aCBlbGVtZW50IGF0IGluZGV4IDEpCgpwaXRjaGVzX2J5X2lubmluZ3NbbGVuZ3RoKHBpdGNoZXNfYnlfaW5uaW5ncyldCiNyZXR1cm5zIHRoZSBsYXN0IGVsZW1lbnQKCnBpdGNoZXNfYnlfaW5uaW5nc1tjKDIsMyw0KV0KI3JldHVybmluZyAybmQsIDNyZCwgNHRoIGVsZW1lbnRzCiNzYW1lIGFzIHNheWluZy4uLi4uCnBpdGNoZXNfYnlfaW5uaW5nc1tjKDI6NCldCmBgYAoKKipWZWN0b3JzIGFzIHN0cmluZ3Mgb3IgbG9naWNhbCB2YWx1ZXMqKgpgYGB7cn0KcGxheWVyX3Bvc2l0aW9uczwtYygiY2F0Y2hlciIsInBpdGNoZXIiLCJpbmZpZWxkZXIiLCJvdXRmaWVsZGVyIikKcGxheWVyX3Bvc2l0aW9ucwpgYGAKKipEYXRhIEZyYW1lcyoqCgpgYGB7cn0KZGF0YS5mcmFtZShib251cz1jKDIsMywxKSxhY3RpdmVfcm9zdGVyPWMoInllcyIsIm5vIiwieWVzIiksc2FsYXJ5PWMoMS41LDIuNSwxKSkKYGBgCgoqKlVzaW5nIFRhYmxlcyoqCgoKCgpgYGB7cn0KeDwtYygieWVzIiwibm8iLCJubyIsInllcyIsInllcyIpCnRhYmxlKHgpCmBgYAoqKk51bWVyaWNhbCBtZWFzdXJlcyBhbmQgY2VudGVyIG9mIHNwcmVhZCoqCgp2YXJpYW5jZSA9IHN0ZCBkZXZpYXRpb24gc3F1YXJlZApzdGQgZGV2ID0gYXZnIGRpc3RhbmNlIGZyb20gbWVhbgpgYGB7cn0KY2VvX3NhbGFyaWVzPC1jKDEyLC40LDIsNTAsOCwzLDEsNCwuMjUpCm1lYW4oY2VvX3NhbGFyaWVzKQptZWRpYW4oY2VvX3NhbGFyaWVzKQp2YXIoY2VvX3NhbGFyaWVzKQpzZChjZW9fc2FsYXJpZXMpCmBgYAoKKipGaXZlbnVtIGlzIFR1a2V5J3MgNSBOdW1iZXIgU3VtbWFyeQoKR2l2ZXMgdXM6Cm1pbiwgUTEsIG1lZCwgUTMsIG1heApgYGB7cn0KZml2ZW51bShjZW9fc2FsYXJpZXMpCiMgMTIsLjQsMiwxNSw4LDMsMSw0LC4yNQojLjI1LC40LDEsMiwzLDQsOCwxMiwxNQoKI2ZpdmVudW0gZ2l2ZXMgdXM6IG1pbiwgUTEsIG1lZCwgUTMsIG1heAoKYGBgCioqRGVzaWduIGEgZnVuY3Rpb24gd2hpY2ggZ2l2ZXMgeW91IHRoZSBNT0RFKioKCmBgYHtyfQpnZXRNb2RlPC1mdW5jdGlvbih4KSB7CiAgdXg8LXVuaXF1ZSh4KQogIHV4W3doaWNoLm1heCh0YWJ1bGF0ZShtYXRjaCh4LHV4KSkpXQoKfQojZ2V0TW9kZSBpcyB0aGUgbmFtZSB3ZSBnYXZlIG91ciBmdW5jdGlvbgojb3VyIGZ1bmN0aW9uIGdldHMgdGhlIG1vZGUKI3RoZXJlIGlzIG5vIGJ1aWx0LWluIGZ1bmN0aW9uIHRvIGdldCB0aGUgbW9kZSBpbiBSCgpnZXRNb2RlKHBpdGNoZXNfYnlfaW5uaW5ncykKYGBgCgoKYGBge3J9CmdldE1vZGUoc3RyaWtlc19ieV9pbm5pbmdzKQpzdHJpa2VzX2J5X2lubmluZ3MKI3RoZXJlIElTIE5PIE1PREUgc28gaXQncyBqdXN0IGdpdmluZyB0aGUgZmlyc3QgdmFsdWUKI0ZMQVcgSU4gT1VSIEZVTkNUSU9OCmBgYAoKCmBgYHtyfQpnYW1lX2RheTwtYygiU2F0dXJkYXkiLCAiU2F0dXJkYXkiLCAiU3VuZGF5IiwgIk1vbmRheSIsICJTYXR1cmRheSIsIlR1ZXNkYXkiLCAiU3VuZGF5IiwgIkZyaWRheSIsICJGcmlkYXkiLCAiTW9uZGF5IikKZ2V0TW9kZShnYW1lX2RheSkKYGBgCgoKYGBge3J9CgpgYGAKCgpgYGB7cn0KYGBgCgogdW5saWtlICpLbml0KiwgKlByZXZpZXcqIGRvZXMgbm90IHJ1biBhbnkgUiBjb2RlIGNodW5rcy4gSW5zdGVhZCwgdGhlIG91dHB1dCBvZiB0aGUgY2h1bmsgd2hlbiBpdCB3YXMgbGFzdCBydW4gaW4gdGhlIGVkaXRvciBpcyBkaXNwbGF5ZWQuCg==