igroffman commited on
Commit
f87a827
·
verified ·
1 Parent(s): 8fdf227

Update app.R

Browse files
Files changed (1) hide show
  1. app.R +36 -13
app.R CHANGED
@@ -760,12 +760,27 @@ calculate_leaderboards <- function(df, team_meta_df = team_meta) {
760
  }
761
 
762
  get_logo <- function(team_abbr) {
763
- if (is.null(team_meta_df) || is.null(team_abbr) || is.na(team_abbr)) return("")
764
- # Match BatterTeam/PitcherTeam to team_abbr in TMB
765
- logo <- team_meta_df$BTeamLogo[team_meta_df$team_abbr == team_abbr]
766
- if (length(logo) == 0 || is.na(logo[1])) return("")
767
- logo[1]
768
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
769
 
770
  # Game Info
771
  stadium <- if ("Stadium" %in% names(df)) unique(na.omit(df$Stadium))[1] else "Unknown"
@@ -773,21 +788,29 @@ calculate_leaderboards <- function(df, team_meta_df = team_meta) {
773
 
774
  league <- if ("League" %in% names(df)) unique(na.omit(df$League))[1] else ""
775
 
776
- # Format date to MM/DD/YYYY
777
- game_date <- if ("Date" %in% names(df)) {
778
- raw_date <- unique(na.omit(df$Date))[1]
779
- parsed <- tryCatch({
 
 
 
 
780
  if (grepl("^\\d{4}-\\d{1,2}-\\d{1,2}", raw_date)) {
781
  as.Date(raw_date, format = "%Y-%m-%d")
782
  } else if (grepl("^\\d{1,2}/\\d{1,2}/\\d{4}", raw_date)) {
783
  as.Date(raw_date, format = "%m/%d/%Y")
 
 
784
  } else {
785
  as.Date(raw_date)
786
  }
787
- }, error = function(e) Sys.Date())
788
- format(parsed, "%m/%d/%Y")
789
- } else format(Sys.Date(), "%m/%d/%Y")
790
 
 
 
 
791
  # Calculate final score from RunsScored
792
  teams <- unique(c(df$BatterTeam, df$PitcherTeam))
793
  teams <- teams[!is.na(teams)]
 
760
  }
761
 
762
  get_logo <- function(team_abbr) {
763
+ if (is.null(team_meta_df) || is.null(team_abbr) || is.na(team_abbr) || team_abbr == "") return("")
764
+ # Try exact match first
765
+
766
+ idx <- which(team_meta_df$team_abbr == team_abbr)
767
+ if (length(idx) > 0) return(team_meta_df$BTeamLogo[idx[1]])
768
+ # Try case-insensitive match
769
+ idx <- which(tolower(team_meta_df$team_abbr) == tolower(team_abbr))
770
+ if (length(idx) > 0) return(team_meta_df$BTeamLogo[idx[1]])
771
+ ""
772
+ }
773
+
774
+ get_team_name <- function(abbr) {
775
+ if (is.null(team_meta_df) || is.null(abbr) || is.na(abbr) || abbr == "") return(abbr)
776
+ # Try exact match first
777
+ idx <- which(team_meta_df$team_abbr == abbr)
778
+ if (length(idx) > 0) return(team_meta_df$BTeamName[idx[1]])
779
+ # Try case-insensitive match
780
+ idx <- which(tolower(team_meta_df$team_abbr) == tolower(abbr))
781
+ if (length(idx) > 0) return(team_meta_df$BTeamName[idx[1]])
782
+ abbr
783
+ }
784
 
785
  # Game Info
786
  stadium <- if ("Stadium" %in% names(df)) unique(na.omit(df$Stadium))[1] else "Unknown"
 
788
 
789
  league <- if ("League" %in% names(df)) unique(na.omit(df$League))[1] else ""
790
 
791
+ game_date <- if ("Date" %in% names(df)) {
792
+ raw_date <- unique(na.omit(df$Date))[1]
793
+ parsed <- tryCatch({
794
+ # Handle if already a Date object
795
+ if (inherits(raw_date, "Date")) {
796
+ raw_date
797
+ } else {
798
+ raw_date <- as.character(raw_date)
799
  if (grepl("^\\d{4}-\\d{1,2}-\\d{1,2}", raw_date)) {
800
  as.Date(raw_date, format = "%Y-%m-%d")
801
  } else if (grepl("^\\d{1,2}/\\d{1,2}/\\d{4}", raw_date)) {
802
  as.Date(raw_date, format = "%m/%d/%Y")
803
+ } else if (grepl("^\\d{1,2}/\\d{1,2}/\\d{2}$", raw_date)) {
804
+ as.Date(raw_date, format = "%m/%d/%y")
805
  } else {
806
  as.Date(raw_date)
807
  }
808
+ }
809
+ }, error = function(e) NA)
 
810
 
811
+ if (is.na(parsed)) "N/A" else format(parsed, "%m/%d/%Y")
812
+ } else "N/A"
813
+
814
  # Calculate final score from RunsScored
815
  teams <- unique(c(df$BatterTeam, df$PitcherTeam))
816
  teams <- teams[!is.na(teams)]