# Addition
1+1
[1] 2
7-8
[1] -1
# Division
2/3
[1] 0.6666667
# Exponentiation
2^3
[1] 8
# Square root
sqrt(15)
[1] 3.872983
# Logarithms
log(2)
[1] 0.6931472
#Question_1: Compute the log base 5 of 10 and the log of 10.
log10(10)
[1] 1
log(10,5)#Base 5
[1] 1.430677
log(10,10)#Base 10
[1] 1
log(100,4)#Base 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=(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?
BA=42/212
BA
[1] 0.1981132
#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
3 == 8# Does 3 equals 8?
[1] FALSE
3 != 8# Is 3 different from 8?
[1] TRUE
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 True
[1] TRUE
#In R, you create a variable and assign it a value using <- as follows
Total_Bases <- 6 + 5
Total_Bases*3
[1] 33
#To see the variables that are currently defined, use ls (as in “list”)
ls()
[1] "BA" "Batting_Average"
[3] "OBP" "On_Base_Percentage"
[5] "Total_Bases"
#To delete a variable, use rm (as in “remove”)
rm(Total_Bases)
#Either <- or = can be used to assign a value to a variable, but I prefer <- because is less likely to be confused with the logical operator ==
#The basic type of object in R is a vector, which is an ordered list of values of the same type. You can create a vector using the c() function (as in “concatenate”).
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.
# 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
# find length of vector
length(pitches_by_innings)
[1] 5
# find minimum value in vector
min(pitches_by_innings)
[1] 10
# 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
#Making a random sample
sample(1:10, size=5)
[1] 4 9 6 2 8
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] 5 10 6 3 4
# extract rows
barsample <- bar[samplerows, ]
# print sample
print(barsample)
bar[sample(1:nrow(bar), n), ]
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
# the variance
var(sals)
[1] 225.5145
# the standard deviation
sd(sals)
[1] 15.01714
# the median
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
#Question_7: Find the most frequent value of strikes_by_innings.
strikes_by_innings
[1] 9 12 6 14 9
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"
LS0tCnRpdGxlOiAiR2V0dGluZyBzdGFydGVkIHdpdGggUiIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKCgpgYGB7cn0KIyBBZGRpdGlvbgoxKzEKYGBgCmBgYHtyfQo3LTgKYGBgCmBgYHtyfQojIERpdmlzaW9uCjIvMwpgYGAKYGBge3J9CiMgRXhwb25lbnRpYXRpb24KMl4zIApgYGAKYGBge3J9CiMgU3F1YXJlIHJvb3QKc3FydCgxNSkKYGBgCmBgYHtyfQojIExvZ2FyaXRobXMKbG9nKDIpICNOYXR1cmFsIGxvZwpgYGAKYGBge3J9CiNRdWVzdGlvbl8xOiBDb21wdXRlIHRoZSBsb2cgYmFzZSA1IG9mIDEwIGFuZCB0aGUgbG9nIG9mIDEwLgpgYGAKCmBgYHtyfQpsb2cxMCgxMCkKYGBgCmBgYHtyfQpsb2coMTAsNSkjQmFzZSA1CmxvZygxMCwxMCkjQmFzZSAxMApsb2coMTAwLDQpI0Jhc2UgNApgYGAKYGBge3J9CiNCYXR0aW5nIEF2ZXJhZ2U9KE5vLiBvZiBIaXRzKS8oTm8uIG9mIEF0IEJhdHMpCiNXaGF0IGlzIHRoZSBiYXR0aW5nIGF2ZXJhZ2Ugb2YgYSBwbGF5ZXIgdGhhdCBiYXRzIDI5IGhpdHMgaW4gMTEyIGF0IGJhdHM/CkJBPSgyOSkvKDExMikKQkEKYGBgCmBgYHtyfQpCYXR0aW5nX0F2ZXJhZ2U9cm91bmQoQkEsZGlnaXRzID0gMykKQmF0dGluZ19BdmVyYWdlCmBgYApgYGB7cn0KI1F1ZXN0aW9uXzI6V2hhdCBpcyB0aGUgYmF0dGluZyBhdmVyYWdlIG9mIGEgcGxheWVyIHRoYXQgYmF0cyA0MiBoaXRzIGluIDIxMiBhdCBiYXRzPwpCQT00Mi8yMTIKQkEKCiNPbiBCYXNlIFBlcmNlbnRhZ2UKI09CUD0oSCtCQitIQlApLyhBdCBCYXRzK0JCK0hCUCtTRikKI0xldCB1cyBjb21wdXRlIHRoZSBPQlAgZm9yIGEgcGxheWVyIHdpdGggdGhlIGZvbGxvd2luZyBnZW5lcmFsIHN0YXRzCiNBQj01MTUsSD0xNzIsQkI9ODQsSEJQPTUsU0Y9NgpPQlA9KDE3Mis4NCs1KS8oNTE1Kzg0KzUrNikKT0JQCmBgYApgYGB7cn0KT25fQmFzZV9QZXJjZW50YWdlPXJvdW5kKE9CUCxkaWdpdHMgPSAzKQpPbl9CYXNlX1BlcmNlbnRhZ2UKYGBgCmBgYHtyfQojUXVlc3Rpb25fMzpDb21wdXRlIHRoZSBPQlAgZm9yIGEgcGxheWVyIHdpdGggdGhlIGZvbGxvd2luZyBnZW5lcmFsIHN0YXRzOgojQUI9NTY1LEg9MTU2LEJCPTY1LEhCUD0zLFNGPTcKYGBgCgpgYGB7cn0KMyA9PSA4IyBEb2VzIDMgZXF1YWxzIDg/CmBgYApgYGB7cn0KMyAhPSA4IyBJcyAzIGRpZmZlcmVudCBmcm9tIDg/CmBgYApgYGB7cn0KMyA8PSA4IyBJcyAzIGxlc3MgdGhhbiBvciBlcXVhbCB0byA4PwpgYGAKYGBge3J9CjM+NApgYGAKYGBge3J9CiMgTG9naWNhbCBEaXNqdW5jdGlvbiAob3IpCkZBTFNFIHwgRkFMU0UgIyBGYWxzZSBPUiBGYWxzZQpgYGAKYGBge3J9CiMgTG9naWNhbCBDb25qdW5jdGlvbiAoYW5kKQpUUlVFICYgRkFMU0UgI1RydWUgQU5EIEZhbHNlCmBgYApgYGB7cn0KIyBOZWdhdGlvbgohIEZBTFNFICMgTm90IEZhbHNlCmBgYApgYGB7cn0KIyBDb21iaW5hdGlvbiBvZiBzdGF0ZW1lbnRzCjIgPCAzIHwgMSA9PSA1ICMgMjwzIGlzIFRydWUsIDE9PTUgaXMgRmFsc2UsIFRydWUgT1IgRmFsc2UgaXMgVHJ1ZQpgYGAKYGBge3J9CiNJbiBSLCB5b3UgY3JlYXRlIGEgdmFyaWFibGUgYW5kIGFzc2lnbiBpdCBhIHZhbHVlIHVzaW5nIDwtIGFzIGZvbGxvd3MKClRvdGFsX0Jhc2VzIDwtIDYgKyA1ClRvdGFsX0Jhc2VzKjMKYGBgCmBgYHtyfQojVG8gc2VlIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgY3VycmVudGx5IGRlZmluZWQsIHVzZSBscyAoYXMgaW4g4oCcbGlzdOKAnSkKCmxzKCkKYGBgCmBgYHtyfQojVG8gZGVsZXRlIGEgdmFyaWFibGUsIHVzZSBybSAoYXMgaW4g4oCccmVtb3Zl4oCdKQoKcm0oVG90YWxfQmFzZXMpCgojRWl0aGVyIDwtIG9yID0gY2FuIGJlIHVzZWQgdG8gYXNzaWduIGEgdmFsdWUgdG8gYSB2YXJpYWJsZSwgYnV0IEkgcHJlZmVyIDwtIGJlY2F1c2UgaXMgbGVzcyBsaWtlbHkgdG8gYmUgY29uZnVzZWQgd2l0aCB0aGUgbG9naWNhbCBvcGVyYXRvciA9PQpgYGAKCmBgYHtyfQojVGhlIGJhc2ljIHR5cGUgb2Ygb2JqZWN0IGluIFIgaXMgYSB2ZWN0b3IsIHdoaWNoIGlzIGFuIG9yZGVyZWQgbGlzdCBvZiB2YWx1ZXMgb2YgdGhlIHNhbWUgdHlwZS4gWW91IGNhbiBjcmVhdGUgYSB2ZWN0b3IgdXNpbmcgdGhlIGMoKSBmdW5jdGlvbiAoYXMgaW4g4oCcY29uY2F0ZW5hdGXigJ0pLgoKcGl0Y2hlc19ieV9pbm5pbmdzIDwtIGMoMTIsIDE1LCAxMCwgMjAsIDEwKSAKcGl0Y2hlc19ieV9pbm5pbmdzCmBgYApgYGB7cn0Kc3RyaWtlc19ieV9pbm5pbmdzIDwtIGMoOSwgMTIsIDYsIDE0LCA5KQpzdHJpa2VzX2J5X2lubmluZ3MKYGBgCmBgYHtyfQojUXVlc3Rpb25fNDogRGVmaW5lIHR3byB2ZWN0b3JzLHJ1bnNfcGVyXzlpbm5pbmdzIGFuZCBoaXRzX3Blcl85aW5uaW5ncywgZWFjaCB3aXRoIGZpdmUgZWxlbWVudHMuIApgYGAKCmBgYHtyfQojIHJlcGxpY2F0ZSBmdW5jdGlvbgpyZXAoMiwgNSkKYGBgCmBgYHtyfQpyZXAoMSw0KQpgYGAKYGBge3J9CiMgY29uc2VjdXRpdmUgbnVtYmVycwoxOjUKYGBgCmBgYHtyfQoyOjEwCmBgYApgYGB7cn0KIyBzZXF1ZW5jZSBmcm9tIDEgdG8gMTAgd2l0aCBhIHN0ZXAgb2YgMgpzZXEoMSwgMTAsIGJ5PTIpCmBgYApgYGB7cn0Kc2VxKDIsMTMsYnk9MykKYGBgCmBgYHtyfQojIGFkZCB2ZWN0b3JzCnBpdGNoZXNfYnlfaW5uaW5ncytzdHJpa2VzX2J5X2lubmluZ3MKYGBgCmBgYHtyfQojIGNvbXBhcmUgdmVjdG9ycwpwaXRjaGVzX2J5X2lubmluZ3MgPT0gc3RyaWtlc19ieV9pbm5pbmdzCmBgYApgYGB7cn0KIyBmaW5kIGxlbmd0aCBvZiB2ZWN0b3IKbGVuZ3RoKHBpdGNoZXNfYnlfaW5uaW5ncykKYGBgCmBgYHtyfQojIGZpbmQgbWluaW11bSB2YWx1ZSBpbiB2ZWN0b3IKbWluKHBpdGNoZXNfYnlfaW5uaW5ncykKYGBgCmBgYHtyfQojIGZpbmQgYXZlcmFnZSB2YWx1ZSBpbiB2ZWN0b3IKbWVhbihwaXRjaGVzX2J5X2lubmluZ3MpCmBgYApgYGB7cn0KcGl0Y2hlc19ieV9pbm5pbmdzCmBgYApgYGB7cn0KIyBJZiB5b3Ugd2FudCB0byBnZXQgdGhlIGZpcnN0IGVsZW1lbnQ6CnBpdGNoZXNfYnlfaW5uaW5nc1sxXQpgYGAKYGBge3J9CiNRdWVzdGlvbl81OiBHZXQgdGhlIGZpcnN0IGVsZW1lbnQgb2YgaGl0c19wZXJfOWlubmluZ3MuCnBpdGNoZXNfYnlfaW5uaW5nc1tsZW5ndGgocGl0Y2hlc19ieV9pbm5pbmdzKV0KYGBgCmBgYHtyfQojUXVlc3Rpb25fNjogR2V0IHRoZSBsYXN0IGVsZW1lbnQgb2YgaGl0c19wZXJfOWlubmluZ3MuCnBpdGNoZXNfYnlfaW5uaW5nc1tjKDIsIDMsIDQpXQpwbGF5ZXJfcG9zaXRpb25zIDwtIGMoImNhdGNoZXIiLCAicGl0Y2hlciIsICJpbmZpZWxkZXJzIiwgIm91dGZpZWxkZXJzIikKYGBgCmBgYHtyfQpkYXRhLmZyYW1lKGJvbnVzID0gYygyLCAzLCAxKSwjaW4gbWlsbGlvbnMgCiAgICAgICAgICAgYWN0aXZlX3Jvc3RlciA9IGMoInllcyIsICJubyIsICJ5ZXMiKSwgCiAgICAgICAgICAgc2FsYXJ5ID0gYygxLjUsIDIuNSwgMSkpI2luIG1pbGxpb25zIApgYGAKYGBge3J9CiNNYWtpbmcgYSByYW5kb20gc2FtcGxlCnNhbXBsZSgxOjEwLCBzaXplPTUpCmBgYApgYGB7cn0KYmFyIDwtIGRhdGEuZnJhbWUodmFyMSA9IExFVFRFUlNbMToxMF0sIHZhcjIgPSAxOjEwKQojIENoZWNrIGRhdGEgZnJhbWUKYmFyCmBgYApgYGB7cn0KbiA8LSA1CmBgYApgYGB7cn0Kc2FtcGxlcm93cyA8LSBzYW1wbGUoMTpucm93KGJhciksIHNpemU9bikgCiMgcHJpbnQgc2FtcGxlIHJvd3MKc2FtcGxlcm93cwpgYGAKYGBge3J9CiMgZXh0cmFjdCByb3dzCmJhcnNhbXBsZSA8LSBiYXJbc2FtcGxlcm93cywgXQojIHByaW50IHNhbXBsZQpwcmludChiYXJzYW1wbGUpCmBgYApgYGB7cn0KYmFyW3NhbXBsZSgxOm5yb3coYmFyKSwgbiksIF0KYGBgCmBgYHtyfQp4IDwtIGMoIlllcyIsIk5vIiwiTm8iLCJZZXMiLCJZZXMiKSAKdGFibGUoeCkKYGBgCmBgYHtyfQpzYWxzIDwtIGMoMTIsIC40LCA1LCAyLCA1MCwgOCwgMywgMSwgNCwgMC4yNSkKIyB0aGUgYXZlcmFnZQptZWFuKHNhbHMpIApgYGAKYGBge3J9CiMgdGhlIHZhcmlhbmNlCnZhcihzYWxzKQpgYGAKYGBge3J9CiMgdGhlIHN0YW5kYXJkIGRldmlhdGlvbgpzZChzYWxzKQpgYGAKYGBge3J9CiMgdGhlIG1lZGlhbgptZWRpYW4oc2FscykKYGBgCmBgYHtyfQojIFR1a2V5J3MgZml2ZSBudW1iZXIgc3VtbWFyeSwgdXNlZnVsbCBmb3IgYm94cGxvdHMKIyBmaXZlIG51bWJlcnM6IG1pbiwgbG93ZXIgaGluZ2UsIG1lZGlhbiwgdXBwZXIgaGluZ2UsIG1heApmaXZlbnVtKHNhbHMpCmBgYApgYGB7cn0KIyBzdW1tYXJ5IHN0YXRpc3RpY3MKc3VtbWFyeShzYWxzKQpgYGAKYGBge3J9CiMgRnVuY3Rpb24gdG8gZmluZCB0aGUgbW9kZSwgaS5lLiBtb3N0IGZyZXF1ZW50IHZhbHVlCmdldE1vZGUgPC0gZnVuY3Rpb24oeCkgewogICAgIHV4IDwtIHVuaXF1ZSh4KQogICAgIHV4W3doaWNoLm1heCh0YWJ1bGF0ZShtYXRjaCh4LCB1eCkpKV0KIH0KYGBgCmBgYHtyfQojIE1vc3QgZnJlcXVlbnQgdmFsdWUgaW4gcGl0Y2hlc19ieV9pbm5pbmdzCmdldE1vZGUocGl0Y2hlc19ieV9pbm5pbmdzKQpgYGAKYGBge3J9CiNRdWVzdGlvbl83OiBGaW5kIHRoZSBtb3N0IGZyZXF1ZW50IHZhbHVlIG9mIHN0cmlrZXNfYnlfaW5uaW5ncy4Kc3RyaWtlc19ieV9pbm5pbmdzCmdldE1vZGUoc3RyaWtlc19ieV9pbm5pbmdzKQoKYGBgCmBgYHtyfQojUXVlc3Rpb25fODogU3VtbWFyaXplIHRoZSBmb2xsb3dpbmcgc3VydmV5IHdpdGggdGhlIGB0YWJsZSgpYCBjb21tYW5kOgojV2hhdCBpcyB5b3VyIGZhdm9yaXRlIGRheSBvZiB0aGUgd2VlayB0byB3YXRjaCBiYXNlYmFsbD8gQSB0b3RhbCBvZiAxMCBmYW5zIHN1Ym1pdHRlZCB0aGlzIHN1cnZleS4KI1NhdHVyZGF5LCBTYXR1cmRheSwgU3VuZGF5LCBNb25kYXksIFNhdHVyZGF5LFR1ZXNkYXksIFN1bmRheSwgRnJpZGF5LCBGcmlkYXksIE1vbmRheQpnYW1lX2RheTwtYygiU2F0dXJkYXkiLCAiU2F0dXJkYXkiLCAiU3VuZGF5IiwgIk1vbmRheSIsICJTYXR1cmRheSIsIlR1ZXNkYXkiLCAiU3VuZGF5IiwgIkZyaWRheSIsICJGcmlkYXkiLCAiTW9uZGF5IikKdGFibGUoZ2FtZV9kYXkpCmBgYAoKYGBge3J9CiNRdWVzdGlvbl85OiBXaGF0IGlzIHRoZSBtb3N0IGZyZXF1ZW50IGFuc3dlciByZWNvcmRlZCBpbiB0aGUgc3VydmV5PyBVc2UgdGhlIGdldE1vZGUgZnVuY3Rpb24gdG8gY29tcHV0ZSByZXN1bHRzLiAKZ2V0TW9kZShnYW1lX2RheSkKYGBgCg==