I haven't seen any info on this anywhere, but is it considered good practice to nest functions, with the assumption that I only use the inner function within the outer function? And if it isn't good practice, is there a better way?
Here's an example. I use get_betweenness() multiple times within get_data()
get_data <- function(my_season, my_team, my_league) {
get_betweenness <- function(mydata) {
mydata %>%
filter(league == my_league) %>%
filter(season == my_season) %>%
filter(team == my_team) %>%
select(-c(team, season, league, game_strength)) %>%
as.matrix() %>%
graph.edgelist(directed = TRUE) %>%
betweenness(directed = TRUE, normalized = TRUE) %>%
as.data.frame() %>%
rownames_to_column() %>%
rename(name = "rowname", betweenness = ".") %>%
mutate(team = my_team, season = my_season, league = my_league)
}
data_all_situations <- goal_data %>%
get_betweenness()
data_five_on_five <- goal_data %>%
filter(game_strength == "5v5") %>%
get_betweenness()
data_power_play <- goal_data %>%
filter(game_strength == "5v4" | game_strength == "5v3" | game_strength == "4v3") %>%
get_betweenness()
data_even_strength <- goal_data %>%
filter(game_strength == "5v5" | game_strength == "4v4" | game_strength == "3v3") %>%
get_betweenness()
full_data <- data_all_situations %>%
left_join(data_five_on_five, by = c("name", "team", "season", "league")) %>%
left_join(data_power_play, by = c("name", "team", "season", "league")) %>%
left_join(data_even_strength, by = c("name", "team", "season", "league")) %>%
select(name, team, season, league, betweenness_all = betweenness.x, betweenness_5v5 = betweenness.y, betweenness_pp = betweenness.x.x, betweenness_ev = betweenness.y.y) %>%
as_tibble() %>%
arrange(desc(betweenness_all))
return(full_data)
}