Nothing
# some examples using dplyr with Lahman
library(Lahman)
library(dplyr)
#' ## Basic manipulations
# select some variables
batting <- select(tbl_df(Batting), playerID, yearID, teamID, G, AB:H, HR)
# sort by player, year, team
batting <- arrange(batting, playerID, yearID, teamID)
# keep only recent years
batting <- filter(batting, yearID > 1985)
# add salary to Batting data; need to match by player, year and team
# NB: dplyr coerces yearID to character because it is a factor in Salaries
(batting <- batting %>% left_join(Salaries))
# the same in base R using merge():
batting2 <- merge(batting,
Salaries[,c("playerID", "yearID", "teamID", "salary")],
by=c("playerID", "yearID", "teamID"), all.x=TRUE)
# Add name, age and bat hand information from People
people <- select(tbl_df(People), playerID, birthYear, birthMonth,
nameLast, nameFirst, bats)
batting <- batting %>%
left_join(people) %>%
mutate(age = yearID - birthYear - ifelse(birthMonth < 10, 0, 1)) %>%
select(-(birthYear:birthMonth))
# same with base R
People[, c('playerID', 'birthYear', 'birthMonth', 'nameLast', 'nameFirst', 'bats')]
batting2 <- merge(batting, people, all.x = TRUE)
batting2$age <- with(batting2, yearID - birthYear -
ifelse(birthMonth < 10, 0, 1))
#' ## Queries about players
# form a players data.frame, that is grouped by playerID
players <- group_by(batting, playerID)
# For each player, find the two years with most hits
filter(players, min_rank(desc(H)) <= 2 & H > 0)
# Within each player, rank each year by the number of games played
mutate(players, G_rank = min_rank(G))
# For each player, find every year that was better than the previous year
filter(players, G > lag(G))
# For each player, compute avg change in games played per year
mutate(players, G_change = (G - lag(G)) / (yearID - lag(yearID)))
# For each player, find all where they played more games than average
filter(players, G > mean(G))
# For each, player compute a z score based on number of games played
mutate(players, G_z = (G - mean(G)) / sd(G))
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.