Question 5:

Consider the following vectors representing the number of field goals made and attempted by a basketball player in five games:

Field Goals Made: c(18, 7, 6, 9, 10,13) Field Goals Attempted: c(36, 23, 12, 18, 24,22)

Calculate the field goal percentage for each game and select the correct average field goal percentage for the five games.

Answer :

# Field goals made and attempted
fg_made      <- c(18, 7, 6, 9, 10, 13)
fg_attempted <- c(36, 23, 12, 18, 24, 22)

# Field goal percentage for each game, rounded to 2 decimals
fg_pct <- round((fg_made / fg_attempted) * 100, 2)

# Labeling per game
names(fg_pct) <- paste("Game", 1:length(fg_pct))

# Per-game percentages
print(fg_pct)
Game 1 Game 2 Game 3 Game 4 Game 5 Game 6 
 50.00  30.43  50.00  50.00  41.67  59.09 
# Average field goal percentage, rounded to 2 decimals
avg_fg_pct <- round(mean(fg_pct), 2)
cat("Average:", avg_fg_pct, "\n")
Average: 46.87 

Question 6:

Consider the following vectors in R representing the number of three-pointers made (3PM) and attempted (3PA) by a basketball player over a seven-game span:

Three-Pointers Made: c(3, 5, 10, 6, 3, 7, 1)

Three-Pointers Attempted: c(9, 10, 18, 12, 11, 12, 11)

Calculate both the average of the individual per-game three-point percentages and the overall (cumulative) three-point shooting percentage across all seven games. Submit your code and knitted R HTML file or RPubs link as instructed.

Answer :

# Three-pointers made and attempted over seven games
three_made      <- c(3, 5, 10, 6, 3, 7, 1)
three_attempted <- c(9, 10, 18, 12, 11, 12, 11)

# Per-game three-point percentages
per_game_pct <- (three_made / three_attempted) * 100

# 1. Average of the individual per-game percentages
avg_per_game_pct <- mean(per_game_pct)

# 2. Overall (cumulative) three-point percentage
overall_pct <- (sum(three_made) / sum(three_attempted)) * 100

# Labeling per game
names(per_game_pct) <- paste("Game", 1:length(per_game_pct))

# Results, rounded to 2 decimals
round(per_game_pct, 2)
Game 1 Game 2 Game 3 Game 4 Game 5 Game 6 Game 7 
 33.33  50.00  55.56  50.00  27.27  58.33   9.09 
print("Average of per-game:")
[1] "Average of per-game:"
round(avg_per_game_pct, 2)
[1] 40.51
print("Overall (cumulative):")
[1] "Overall (cumulative):"
round(overall_pct, 2)
[1] 42.17

Question 7:

Consider the following dataset representing the performance of baseball players in a season. It includes the following variables: PlayerID, Hits, At-Bats, Home Runs (HR), Walks (BB), and Strikeouts (SO).

PlayerID Hits At-Bats HR BB SO

1             112       400           25          50     60

2             124       450           22          60     65

3             121       380           8            19     67

4             106       500           20         150     92

5             140       402           11          55     70

Compute the On-Base Percentage (OBP) for each player and select the player with the highest OBP. Submit your code and knitted R HTML file or RPubs link as instructed.

(Formula: OBP = (Hits + Walks) / (At-Bats + Walks))

Answer :

# Player data
PlayerID <- c(1, 2, 3, 4, 5)
Hits     <- c(112, 124, 121, 106, 140)
AtBats   <- c(400, 450, 380, 500, 402)
BB       <- c(50, 60, 19, 150, 55)

# On-Base Percentage: OBP = (Hits + Walks) / (At-Bats + Walks)
OBP <- (Hits + BB) / (AtBats + BB)

# OBP for each player, rounded to 3 decimals
print("OBP by player:")
[1] "OBP by player:"
print(round(OBP, 3))
[1] 0.360 0.361 0.351 0.394 0.427
# Player with the highest OBP
best <- PlayerID[which.max(OBP)]
print("Player with highest OBP:")
[1] "Player with highest OBP:"
print(best)
[1] 5
print("Highest OBP value:")
[1] "Highest OBP value:"
print(round(max(OBP), 3))
[1] 0.427
LS0tCnRpdGxlOiAiRmluYWwgRXhhbSIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKUXVlc3Rpb24gNTogCgpDb25zaWRlciB0aGUgZm9sbG93aW5nIHZlY3RvcnMgcmVwcmVzZW50aW5nIHRoZSBudW1iZXIgb2YgZmllbGQgZ29hbHMgbWFkZSBhbmQgYXR0ZW1wdGVkIGJ5IGEgYmFza2V0YmFsbCBwbGF5ZXIgaW4gZml2ZSBnYW1lczoKCkZpZWxkIEdvYWxzIE1hZGU6IGMoMTgsIDcsIDYsIDksIDEwLDEzKSBGaWVsZCBHb2FscyBBdHRlbXB0ZWQ6IGMoMzYsIDIzLCAxMiwgMTgsIDI0LDIyKQoKQ2FsY3VsYXRlIHRoZSBmaWVsZCBnb2FsIHBlcmNlbnRhZ2UgZm9yIGVhY2ggZ2FtZSBhbmQgc2VsZWN0IHRoZSBjb3JyZWN0IGF2ZXJhZ2UgZmllbGQgZ29hbCBwZXJjZW50YWdlIGZvciB0aGUgZml2ZSBnYW1lcy4KCgpBbnN3ZXIgOgpgYGB7cn0KIyBGaWVsZCBnb2FscyBtYWRlIGFuZCBhdHRlbXB0ZWQKZmdfbWFkZSAgICAgIDwtIGMoMTgsIDcsIDYsIDksIDEwLCAxMykKZmdfYXR0ZW1wdGVkIDwtIGMoMzYsIDIzLCAxMiwgMTgsIDI0LCAyMikKCiMgRmllbGQgZ29hbCBwZXJjZW50YWdlIGZvciBlYWNoIGdhbWUsIHJvdW5kZWQgdG8gMiBkZWNpbWFscwpmZ19wY3QgPC0gcm91bmQoKGZnX21hZGUgLyBmZ19hdHRlbXB0ZWQpICogMTAwLCAyKQoKIyBMYWJlbGluZyBwZXIgZ2FtZQpuYW1lcyhmZ19wY3QpIDwtIHBhc3RlKCJHYW1lIiwgMTpsZW5ndGgoZmdfcGN0KSkKCiMgUGVyLWdhbWUgcGVyY2VudGFnZXMKcHJpbnQoZmdfcGN0KQoKIyBBdmVyYWdlIGZpZWxkIGdvYWwgcGVyY2VudGFnZSwgcm91bmRlZCB0byAyIGRlY2ltYWxzCmF2Z19mZ19wY3QgPC0gcm91bmQobWVhbihmZ19wY3QpLCAyKQpjYXQoIkF2ZXJhZ2U6IiwgYXZnX2ZnX3BjdCwgIlxuIikKYGBgCgpRdWVzdGlvbiA2OgoKQ29uc2lkZXIgdGhlIGZvbGxvd2luZyB2ZWN0b3JzIGluIFIgcmVwcmVzZW50aW5nIHRoZSBudW1iZXIgb2YgdGhyZWUtcG9pbnRlcnMgbWFkZSAoM1BNKSBhbmQgYXR0ZW1wdGVkICgzUEEpIGJ5IGEgYmFza2V0YmFsbCBwbGF5ZXIgb3ZlciBhIHNldmVuLWdhbWUgc3BhbjoKClRocmVlLVBvaW50ZXJzIE1hZGU6IGMoMywgNSwgMTAsIDYsIDMsIDcsIDEpCgpUaHJlZS1Qb2ludGVycyBBdHRlbXB0ZWQ6IGMoOSwgMTAsIDE4LCAxMiwgMTEsIDEyLCAxMSkKCkNhbGN1bGF0ZSBib3RoIHRoZSBhdmVyYWdlIG9mIHRoZSBpbmRpdmlkdWFsIHBlci1nYW1lIHRocmVlLXBvaW50IHBlcmNlbnRhZ2VzIGFuZCB0aGUgb3ZlcmFsbCAoY3VtdWxhdGl2ZSkgdGhyZWUtcG9pbnQgc2hvb3RpbmcgcGVyY2VudGFnZSBhY3Jvc3MgYWxsIHNldmVuIGdhbWVzLiBTdWJtaXQgeW91ciBjb2RlIGFuZCBrbml0dGVkIFIgSFRNTCBmaWxlIG9yIFJQdWJzIGxpbmsgYXMgaW5zdHJ1Y3RlZC4KCgpBbnN3ZXIgOgpgYGB7cn0KIyBUaHJlZS1wb2ludGVycyBtYWRlIGFuZCBhdHRlbXB0ZWQgb3ZlciBzZXZlbiBnYW1lcwp0aHJlZV9tYWRlICAgICAgPC0gYygzLCA1LCAxMCwgNiwgMywgNywgMSkKdGhyZWVfYXR0ZW1wdGVkIDwtIGMoOSwgMTAsIDE4LCAxMiwgMTEsIDEyLCAxMSkKCiMgUGVyLWdhbWUgdGhyZWUtcG9pbnQgcGVyY2VudGFnZXMKcGVyX2dhbWVfcGN0IDwtICh0aHJlZV9tYWRlIC8gdGhyZWVfYXR0ZW1wdGVkKSAqIDEwMAoKIyAxLiBBdmVyYWdlIG9mIHRoZSBpbmRpdmlkdWFsIHBlci1nYW1lIHBlcmNlbnRhZ2VzCmF2Z19wZXJfZ2FtZV9wY3QgPC0gbWVhbihwZXJfZ2FtZV9wY3QpCgojIDIuIE92ZXJhbGwgKGN1bXVsYXRpdmUpIHRocmVlLXBvaW50IHBlcmNlbnRhZ2UKb3ZlcmFsbF9wY3QgPC0gKHN1bSh0aHJlZV9tYWRlKSAvIHN1bSh0aHJlZV9hdHRlbXB0ZWQpKSAqIDEwMAoKIyBMYWJlbGluZyBwZXIgZ2FtZQpuYW1lcyhwZXJfZ2FtZV9wY3QpIDwtIHBhc3RlKCJHYW1lIiwgMTpsZW5ndGgocGVyX2dhbWVfcGN0KSkKCiMgUmVzdWx0cywgcm91bmRlZCB0byAyIGRlY2ltYWxzCnJvdW5kKHBlcl9nYW1lX3BjdCwgMikKcHJpbnQoIkF2ZXJhZ2Ugb2YgcGVyLWdhbWU6IikKcm91bmQoYXZnX3Blcl9nYW1lX3BjdCwgMikKcHJpbnQoIk92ZXJhbGwgKGN1bXVsYXRpdmUpOiIpCnJvdW5kKG92ZXJhbGxfcGN0LCAyKQpgYGAKClF1ZXN0aW9uIDc6CgpDb25zaWRlciB0aGUgZm9sbG93aW5nIGRhdGFzZXQgcmVwcmVzZW50aW5nIHRoZSBwZXJmb3JtYW5jZSBvZiBiYXNlYmFsbCBwbGF5ZXJzIGluIGEgc2Vhc29uLiBJdCBpbmNsdWRlcyB0aGUgZm9sbG93aW5nIHZhcmlhYmxlczogUGxheWVySUQsIEhpdHMsIEF0LUJhdHMsIEhvbWUgUnVucyAoSFIpLCBXYWxrcyAoQkIpLCBhbmQgU3RyaWtlb3V0cyAoU08pLgoKUGxheWVySUQgICAgIEhpdHMgICAgQXQtQmF0cyAgICAgICAgSFIgICAgICAgIEJCICAgICBTTwoKICAgIDEgICAgICAgICAgICAgMTEyICAgICAgIDQwMCAgICAgICAgICAgMjUgICAgICAgICAgNTAgICAgIDYwCgogICAgMiAgICAgICAgICAgICAxMjQgICAgICAgNDUwICAgICAgICAgICAyMiAgICAgICAgICA2MCAgICAgNjUKCiAgICAzICAgICAgICAgICAgIDEyMSAgICAgICAzODAgICAgICAgICAgIDggICAgICAgICAgICAxOSAgICAgNjcKCiAgICA0ICAgICAgICAgICAgIDEwNiAgICAgICA1MDAgICAgICAgICAgIDIwICAgICAgICAgMTUwICAgICA5MgoKICAgIDUgICAgICAgICAgICAgMTQwICAgICAgIDQwMiAgICAgICAgICAgMTEgICAgICAgICAgNTUgICAgIDcwCgpDb21wdXRlIHRoZSBPbi1CYXNlIFBlcmNlbnRhZ2UgKE9CUCkgZm9yIGVhY2ggcGxheWVyIGFuZCBzZWxlY3QgdGhlIHBsYXllciB3aXRoIHRoZSBoaWdoZXN0IE9CUC4gU3VibWl0IHlvdXIgY29kZSBhbmQga25pdHRlZCBSIEhUTUwgZmlsZSBvciBSUHVicyBsaW5rIGFzIGluc3RydWN0ZWQuCgooRm9ybXVsYTogT0JQID0gKEhpdHMgKyBXYWxrcykgLyAoQXQtQmF0cyArIFdhbGtzKSkKCgpBbnN3ZXIgOgpgYGB7cn0KIyBQbGF5ZXIgZGF0YQpQbGF5ZXJJRCA8LSBjKDEsIDIsIDMsIDQsIDUpCkhpdHMgICAgIDwtIGMoMTEyLCAxMjQsIDEyMSwgMTA2LCAxNDApCkF0QmF0cyAgIDwtIGMoNDAwLCA0NTAsIDM4MCwgNTAwLCA0MDIpCkJCICAgICAgIDwtIGMoNTAsIDYwLCAxOSwgMTUwLCA1NSkKCiMgT24tQmFzZSBQZXJjZW50YWdlOiBPQlAgPSAoSGl0cyArIFdhbGtzKSAvIChBdC1CYXRzICsgV2Fsa3MpCk9CUCA8LSAoSGl0cyArIEJCKSAvIChBdEJhdHMgKyBCQikKCiMgT0JQIGZvciBlYWNoIHBsYXllciwgcm91bmRlZCB0byAzIGRlY2ltYWxzCnByaW50KCJPQlAgYnkgcGxheWVyOiIpCnByaW50KHJvdW5kKE9CUCwgMykpCgojIFBsYXllciB3aXRoIHRoZSBoaWdoZXN0IE9CUApiZXN0IDwtIFBsYXllcklEW3doaWNoLm1heChPQlApXQpwcmludCgiUGxheWVyIHdpdGggaGlnaGVzdCBPQlA6IikKcHJpbnQoYmVzdCkKcHJpbnQoIkhpZ2hlc3QgT0JQIHZhbHVlOiIpCnByaW50KHJvdW5kKG1heChPQlApLCAzKSkKYGBg