#log
log(10)
[1] 2.302585
log(2.72)
[1] 1.000632
log(10)
[1] 2.302585
log10(100)
[1] 2
log(10, base = 5)
[1] 1.430677
#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
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?
BA=(42)/(212)
BA
[1] 0.1981132
Batting_Average=round(BA,digits = 3)
Batting_Average
[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
On_Base_Percentage=round(OBP,digits = 3)
On_Base_Percentage
[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=(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
3 == 8# Does 3 equals 8?
[1] FALSE
3 <= 8# Is 3 less than or equal to 8?
[1] TRUE
3>4
[1] FALSE
# Logical Disjunction (or)
FALSE | FALSE # False OR False
[1] FALSE
# Logical Conjunction (and)
TRUE & FALSE #True AND False
[1] FALSE
# Negation
! FALSE # Not False
[1] TRUE
# Combination of statements
2 < 3 | 1 == 5 # 2<3 is True, 1==5 is False, True OR False is 
[1] TRUE
2>3|2==3
[1] FALSE
2>1 & 3>=3
[1] TRUE
2>1 & 3>4
[1] FALSE
Total_Bases <- 6 + 5
Total_Bases*3
[1] 33
ls()
[1] "BA"                 "Batting_Average"    "hits_per_9innings"  "OBP"                "On_Base_Percentage" "pitches_by_innings"
[7] "runs_per_9innings"  "strikes_by_innings" "Total_Bases"       
rm(Total_Bases)
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,5,7,11,13)
hits_per_9innings<-c(11,13,16,18,19)
runs_per_9innings
[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
rep(1,4)
[1] 1 1 1 1
# 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, 10, by=2)
[1] 1 3 5 7 9
seq(2,13,by=3)
[1]  2  5  8 11
# 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
runs_per_9innings == hits_per_9innings
[1] FALSE FALSE FALSE FALSE FALSE
# If you want to get the first element:
pitches_by_innings[1]
[1] 12
#Question_5: Get the first element of hits_per_9innings.
hits_per_9innings[1]
[1] 11
hits_per_9innings[length(hits_per_9innings)]
[1] 19
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]  4  1  8  6 10
x <- c("Yes","No","No","Yes","Yes") 
table(x)
x
 No Yes 
  2   3 
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 statistics
summary(sals)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  0.250   1.250   3.500   8.565   7.250  50.000 
# Function to find the mode, i.e. most frequent value
getMode <- function(x) {
     ux <- unique(x)
     ux[which.max(tabulate(match(x, ux)))]
}
# Most frequent value in pitches_by_innings
getMode(pitches_by_innings)
[1] 10
getMode(hits_per_9innings)
[1] 11
getMode(pitches_by_innings)
[1] 10
getMode(strikes_by_innings)
[1] 9
#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"
LS0tCnRpdGxlOiAiQWN0aXZpdHkgNCIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKCgpgYGB7cn0KI2xvZwpsb2coMTApCmxvZygyLjcyKQpgYGAKCgoKYGBge3J9CmxvZygxMCkKbG9nMTAoMTAwKQpsb2coMTAsIGJhc2UgPSA1KQpgYGAKCgpgYGB7cn0KI0JhdHRpbmcgQXZlcmFnZT0oTm8uIG9mIEhpdHMpLyhOby4gb2YgQXQgQmF0cykKI1doYXQgaXMgdGhlIGJhdHRpbmcgYXZlcmFnZSBvZiBhIHBsYXllciB0aGF0IGJhdHMgMjkgaGl0cyBpbiAxMTIgYXQgYmF0cz8KQkE9KDI5KS8oMTEyKQpCQQpgYGAKCgpgYGB7cn0KQmF0dGluZ19BdmVyYWdlPXJvdW5kKEJBLGRpZ2l0cyA9IDMpCkJhdHRpbmdfQXZlcmFnZQpgYGAKCgpgYGB7cn0KI1F1ZXN0aW9uXzI6V2hhdCBpcyB0aGUgYmF0dGluZyBhdmVyYWdlIG9mIGEgcGxheWVyIHRoYXQgYmF0cyA0MiBoaXRzIGluIDIxMiBhdCBiYXRzPwpCQT0oNDIpLygyMTIpCkJBCkJhdHRpbmdfQXZlcmFnZT1yb3VuZChCQSxkaWdpdHMgPSAzKQpCYXR0aW5nX0F2ZXJhZ2UKYGBgCmBgYHtyfQojT24gQmFzZSBQZXJjZW50YWdlCiNPQlA9KEgrQkIrSEJQKS8oQXQgQmF0cytCQitIQlArU0YpCiNMZXQgdXMgY29tcHV0ZSB0aGUgT0JQIGZvciBhIHBsYXllciB3aXRoIHRoZSBmb2xsb3dpbmcgZ2VuZXJhbCBzdGF0cwojQUI9NTE1LEg9MTcyLEJCPTg0LEhCUD01LFNGPTYKT0JQPSgxNzIrODQrNSkvKDUxNSs4NCs1KzYpCk9CUApgYGAKYGBge3J9Ck9uX0Jhc2VfUGVyY2VudGFnZT1yb3VuZChPQlAsZGlnaXRzID0gMykKT25fQmFzZV9QZXJjZW50YWdlCmBgYAoKCmBgYHtyfQojUXVlc3Rpb25fMzpDb21wdXRlIHRoZSBPQlAgZm9yIGEgcGxheWVyIHdpdGggdGhlIGZvbGxvd2luZyBnZW5lcmFsIHN0YXRzOgojQUI9NTY1LEg9MTU2LEJCPTY1LEhCUD0zLFNGPTcKI09CUD0oSCtCQitIQlApLyhBdCBCYXRzK0JCK0hCUCtTRikKT0JQID0gKDE1Nis2NSszKS8oNTY1KzY1KzMrNykKT25fQmFzZV9QZXJjZW50YWdlPXJvdW5kKE9CUCxkaWdpdHMgPSAzKQpPbl9CYXNlX1BlcmNlbnRhZ2UKYGBgCgoKYGBge3J9CjMgPT0gOCMgRG9lcyAzIGVxdWFscyA4PwozIDw9IDgjIElzIDMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDg/CjM+NAojIExvZ2ljYWwgRGlzanVuY3Rpb24gKG9yKQpGQUxTRSB8IEZBTFNFICMgRmFsc2UgT1IgRmFsc2UKIyBMb2dpY2FsIENvbmp1bmN0aW9uIChhbmQpClRSVUUgJiBGQUxTRSAjVHJ1ZSBBTkQgRmFsc2UKIyBOZWdhdGlvbgohIEZBTFNFICMgTm90IEZhbHNlCmBgYAoKYGBge3J9CiMgQ29tYmluYXRpb24gb2Ygc3RhdGVtZW50cwoyIDwgMyB8IDEgPT0gNSAjIDI8MyBpcyBUcnVlLCAxPT01IGlzIEZhbHNlLCBUcnVlIE9SIEZhbHNlIGlzIAoyPjN8Mj09MwoyPjEgJiAzPj0zCjI+MSAmIDM+NApgYGAKCgpgYGB7cn0KVG90YWxfQmFzZXMgPC0gNiArIDUKVG90YWxfQmFzZXMqMwpgYGAKCgpgYGB7cn0KbHMoKQpgYGAKCmBgYHtyfQpybShUb3RhbF9CYXNlcykKYGBgCgoKYGBge3J9CnBpdGNoZXNfYnlfaW5uaW5ncyA8LSBjKDEyLCAxNSwgMTAsIDIwLCAxMCkgCnBpdGNoZXNfYnlfaW5uaW5ncwpgYGAKCgpgYGB7cn0Kc3RyaWtlc19ieV9pbm5pbmdzIDwtIGMoOSwgMTIsIDYsIDE0LCA5KQpzdHJpa2VzX2J5X2lubmluZ3MKCmBgYAoKYGBge3J9CiNRdWVzdGlvbl80OiBEZWZpbmUgdHdvIHZlY3RvcnMscnVuc19wZXJfOWlubmluZ3MgYW5kIGhpdHNfcGVyXzlpbm5pbmdzLCBlYWNoIHdpdGggZml2ZSBlbGVtZW50cy4gCnJ1bnNfcGVyXzlpbm5pbmdzPC1jKDIsNSw3LDExLDEzKQpoaXRzX3Blcl85aW5uaW5nczwtYygxMSwxMywxNiwxOCwxOSkKcnVuc19wZXJfOWlubmluZ3MKaGl0c19wZXJfOWlubmluZ3MKYGBgCgpgYGB7cn0KIyByZXBsaWNhdGUgZnVuY3Rpb24KcmVwKDIsIDUpCmBgYAoKYGBge3J9CnJlcCgxLDQpCmBgYAoKCmBgYHtyfQojIGNvbnNlY3V0aXZlIG51bWJlcnMKMTo1CgpgYGAKCmBgYHtyfQoyOjEwCmBgYAoKCmBgYHtyfQojIHNlcXVlbmNlIGZyb20gMSB0byAxMCB3aXRoIGEgc3RlcCBvZiAyCnNlcSgxLCAxMCwgYnk9MikKYGBgCgoKYGBge3J9CnNlcSgyLDEzLGJ5PTMpCmBgYAoKCmBgYHtyfQojIGFkZCB2ZWN0b3JzCnBpdGNoZXNfYnlfaW5uaW5ncytzdHJpa2VzX2J5X2lubmluZ3MKYGBgCgpgYGB7cn0KIyBjb21wYXJlIHZlY3RvcnMKcGl0Y2hlc19ieV9pbm5pbmdzID09IHN0cmlrZXNfYnlfaW5uaW5ncwpgYGAKCmBgYHtyfQpydW5zX3Blcl85aW5uaW5ncyA9PSBoaXRzX3Blcl85aW5uaW5ncwpgYGAKCgpgYGB7cn0KIyBJZiB5b3Ugd2FudCB0byBnZXQgdGhlIGZpcnN0IGVsZW1lbnQ6CnBpdGNoZXNfYnlfaW5uaW5nc1sxXQoKYGBgCgoKYGBge3J9CiNRdWVzdGlvbl81OiBHZXQgdGhlIGZpcnN0IGVsZW1lbnQgb2YgaGl0c19wZXJfOWlubmluZ3MuCmhpdHNfcGVyXzlpbm5pbmdzWzFdCmBgYAoKYGBge3J9CmhpdHNfcGVyXzlpbm5pbmdzW2xlbmd0aChoaXRzX3Blcl85aW5uaW5ncyldCmBgYAoKYGBge3J9CmRhdGEuZnJhbWUoYm9udXMgPSBjKDIsIDMsIDEpLCNpbiBtaWxsaW9ucyAKICAgICAgICAgICBhY3RpdmVfcm9zdGVyID0gYygieWVzIiwgIm5vIiwgInllcyIpLCAKICAgICAgICAgICBzYWxhcnkgPSBjKDEuNSwgMi41LCAxKSkjaW4gbWlsbGlvbnMgCmBgYAoKYGBge3J9CnNhbXBsZSgxOjEwLCBzaXplPTUpCmBgYAoKCmBgYHtyfQp4IDwtIGMoIlllcyIsIk5vIiwiTm8iLCJZZXMiLCJZZXMiKSAKdGFibGUoeCkKYGBgCgoKCmBgYHtyfQpzYWxzIDwtIGMoMTIsIC40LCA1LCAyLCA1MCwgOCwgMywgMSwgNCwgMC4yNSkKIyB0aGUgYXZlcmFnZQptZWFuKHNhbHMpIAp2YXIoc2FscykKc2Qoc2FscykKbWVkaWFuKHNhbHMpCmBgYAoKYGBge3J9CiMgVHVrZXkncyBmaXZlIG51bWJlciBzdW1tYXJ5LCB1c2VmdWxsIGZvciBib3hwbG90cwojIGZpdmUgbnVtYmVyczogbWluLCBsb3dlciBoaW5nZSwgbWVkaWFuLCB1cHBlciBoaW5nZSwgbWF4CmZpdmVudW0oc2FscykKYGBgCgoKYGBge3J9CiMgc3VtbWFyeSBzdGF0aXN0aWNzCnN1bW1hcnkoc2FscykKYGBgCgoKYGBge3J9CiMgRnVuY3Rpb24gdG8gZmluZCB0aGUgbW9kZSwgaS5lLiBtb3N0IGZyZXF1ZW50IHZhbHVlCmdldE1vZGUgPC0gZnVuY3Rpb24oeCkgewogICAgIHV4IDwtIHVuaXF1ZSh4KQogICAgIHV4W3doaWNoLm1heCh0YWJ1bGF0ZShtYXRjaCh4LCB1eCkpKV0KfQpgYGAKCgpgYGB7cn0KIyBNb3N0IGZyZXF1ZW50IHZhbHVlIGluIHBpdGNoZXNfYnlfaW5uaW5ncwpnZXRNb2RlKHBpdGNoZXNfYnlfaW5uaW5ncykKYGBgCgpgYGB7cn0KZ2V0TW9kZShoaXRzX3Blcl85aW5uaW5ncykKZ2V0TW9kZShwaXRjaGVzX2J5X2lubmluZ3MpCmdldE1vZGUoc3RyaWtlc19ieV9pbm5pbmdzKQpgYGAKCgpgYGB7cn0KI1F1ZXN0aW9uXzg6IFN1bW1hcml6ZSB0aGUgZm9sbG93aW5nIHN1cnZleSB3aXRoIHRoZSBgdGFibGUoKWAgY29tbWFuZDoKI1doYXQgaXMgeW91ciBmYXZvcml0ZSBkYXkgb2YgdGhlIHdlZWsgdG8gd2F0Y2ggYmFzZWJhbGw/IEEgdG90YWwgb2YgMTAgZmFucyBzdWJtaXR0ZWQgdGhpcyBzdXJ2ZXkuCiNTYXR1cmRheSwgU2F0dXJkYXksIFN1bmRheSwgTW9uZGF5LCBTYXR1cmRheSxUdWVzZGF5LCBTdW5kYXksIEZyaWRheSwgRnJpZGF5LCBNb25kYXkKZ2FtZV9kYXk8LWMoIlNhdHVyZGF5IiwgIlNhdHVyZGF5IiwgIlN1bmRheSIsICJNb25kYXkiLCAiU2F0dXJkYXkiLCJUdWVzZGF5IiwgIlN1bmRheSIsICJGcmlkYXkiLCAiRnJpZGF5IiwgIk1vbmRheSIpCnRhYmxlKGdhbWVfZGF5KQpgYGAKCmBgYHtyfQojUXVlc3Rpb25fOTogV2hhdCBpcyB0aGUgbW9zdCBmcmVxdWVudCBhbnN3ZXIgcmVjb3JkZWQgaW4gdGhlIHN1cnZleT8gVXNlIHRoZSBnZXRNb2RlIGZ1bmN0aW9uIHRvIGNvbXB1dGUgcmVzdWx0cy4gCmdldE1vZGUoZ2FtZV9kYXkpCmBgYAoKCgoKCgoKCgo=