R loop takes too long, how can I approach this another way? -


i'm scraping , cleaning data off particular site collects nfl data end different lengths of data frame looks this:

enter image description here

now i'm going want summarize data in particular ways starting team away , home yard averages. use nfl team vector , loop these lines shown below:

teamlist <- as.matrix(c("new england patriots", "dallas cowboys", "denver broncos",                     "pittsburgh steelers", "seattle seahawks","oakland raiders", "philadelphia eagles", "green bay packers"                     ,"san francisco 49ers", "new york giants","chicago bears", "minnesota vikings", "washington redskins",                     "carolina panthers", "carolina panthers", "new orleans saints", "st. louis rams", "new york jets",                     "baltimore ravens", "san diego chargers", "indianapolis colts", "houston texans", "arizona cardinals",                     "detroit lions", "cleveland browns", "atlanta falcons", "buffalo bills", "jacksonville jaguars", "cincinnati bengals",                     "kansas city chiefs", "tampa bay buccaneers", "tennesee titans", "miami dolphins"))  #calcuating average yards per game vs opponent each team (home , away)  (i in 1:nrow(teamlist)){    (y in 1:nrow(grossm)){      homev1 <- matrix(0,1000000,1)     awayv1 <- matrix(0,1000000,1)     homev2 <- matrix(0,1000000,1)     awayv2 <- matrix(0,1000000,1)      if (teamlist[i,]==grossm[y,4]&grossm[y,5]=="@")(awayv1[y,1] <- grossm[y,9]) else 0      if (teamlist[i,]==grossm[y,4]&grossm[y,5]=="")(homev1[y,1] <- grossm[y,9]) else 0       if (teamlist[i,]==grossm[y,6]&grossm[y,5]=="")(awayv2[y,1] <- grossm[y,11]) else 0      if (teamlist[i,]==grossm[y,6]&grossm[y,5]=="@")(homev2[y,1] <- grossm[y,11]) else 0      .... 

which inefficient haven't had worry efficiency of writing until since loop takes entirely long (i haven't let complete since takes somewhere on hour). can please point me in write direction, perhaps type of matrix operation i'm not thinking of?

thanks in advance response!

edit: randomly realized should using aggregate in way here right?

 structure(list(week = structure(c(1l, 1l, 1l, 1l, 1l, 1l, 1l,  1l, 1l, 1l, 1l, 1l, 1l, 1l, 1l, 1l, 2l, 2l, 2l, 2l, 2l, 2l, 2l,  2l, 2l, 2l, 2l, 2l, 2l, 2l, 2l, 2l, 3l, 3l, 3l, 3l, 3l, 3l, 3l,  3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 4l, 4l, 4l, 4l, 4l, 4l, 4l,  4l, 4l, 4l, 4l, 4l, 4l, 4l, 4l, 5l, 5l, 5l, 5l, 5l, 5l, 5l, 5l,  5l, 5l, 5l, 5l, 5l, 5l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l,  6l, 6l, 6l, 6l, 7l, 7l, 7l, 7l, 7l, 7l, 7l, 7l, 7l, 7l, 7l, 7l,  7l, 7l, 8l, 8l, 8l, 8l, 8l, 8l, 8l, 8l, 8l, 8l, 8l, 8l, 8l, 8l,  9l, 9l, 9l, 9l, 9l, 9l, 9l, 9l, 9l, 9l, 9l, 9l, 9l, 10l, 10l,  10l, 10l, 10l, 10l, 10l, 10l, 10l, 10l, 10l, 10l, 10l, 10l, 11l,  11l, 11l, 11l, 11l, 11l, 11l, 11l, 11l, 11l, 11l, 11l, 11l, 11l,  12l, 12l, 12l, 12l, 12l, 12l, 12l, 12l, 12l, 12l, 12l, 12l, 12l,  12l, 12l, 12l, 13l, 13l, 13l, 13l, 13l, 13l, 13l, 13l, 13l, 13l,  13l, 13l, 13l, 13l, 13l, 13l, 14l, 14l, 14l, 14l, 14l, 14l, 14l,  14l, 14l, 14l, 14l, 14l, 14l, 14l, 14l, 14l, 15l, 15l, 15l, 15l,  15l, 15l, 15l, 15l, 15l, 15l, 15l, 15l, 15l, 15l, 15l, 15l, 16l,  16l, 16l, 16l, 16l, 16l, 16l, 16l, 16l, 16l, 16l, 16l, 16l, 16l,  16l, 16l, 17l, 17l, 17l, 17l, 17l, 17l, 17l, 17l, 17l, 17l, 17l,  17l, 17l, 17l, 17l, 17l, 1l, 1l, 1l, 1l, 1l, 1l, 1l, 1l, 1l,  1l, 1l), .label = c(" 1", " 2", " 3", " 4", " 5", " 6", " 7",  " 8", " 9", "10", "11", "12", "13", "14", "15", "16", "17"), class = "factor"),      day = structure(c(4l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l,      3l, 3l, 3l, 3l, 1l, 1l, 4l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l,      3l, 3l, 3l, 3l, 3l, 3l, 1l, 4l, 3l, 3l, 3l, 3l, 3l, 3l, 3l,      3l, 3l, 3l, 3l, 3l, 3l, 3l, 1l, 4l, 3l, 3l, 3l, 3l, 3l, 3l,      3l, 3l, 3l, 3l, 3l, 3l, 3l, 1l, 4l, 3l, 3l, 3l, 3l, 3l, 3l,      3l, 3l, 3l, 3l, 3l, 3l, 1l, 4l, 3l, 3l, 3l, 3l, 3l, 3l, 3l,      3l, 3l, 3l, 3l, 3l, 1l, 4l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l,      3l, 3l, 3l, 3l, 1l, 4l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l,      3l, 3l, 3l, 1l, 4l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l,      3l, 1l, 4l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l,      1l, 4l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 1l,      4l, 4l, 4l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l,      1l, 4l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l,      3l, 1l, 4l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l,      3l, 3l, 1l, 4l, 2l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l,      3l, 3l, 3l, 1l, 4l, 2l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l,      3l, 3l, 3l, 3l, 1l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l,      3l, 3l, 3l, 3l, 3l, 3l, 4l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l,      3l, 3l), .label = c("mon", "sat", "sun", "thu"), class = "factor"),      date = structure(c(43l, 44l, 44l, 44l, 44l, 44l, 44l, 44l,      44l, 44l, 44l, 44l, 44l, 44l, 45l, 45l, 46l, 47l, 47l, 47l,      47l, 47l, 47l, 47l, 47l, 47l, 47l, 47l, 47l, 47l, 47l, 48l,      49l, 50l, 50l, 50l, 50l, 50l, 50l, 50l, 50l, 50l, 50l, 50l,      50l, 50l, 50l, 51l, 30l, 40l, 40l, 40l, 40l, 40l, 40l, 40l,      40l, 40l, 40l, 40l, 40l, 40l, 41l, 42l, 31l, 31l, 31l, 31l,      31l, 31l, 31l, 31l, 31l, 31l, 31l, 31l, 32l, 33l, 34l, 34l,      34l, 34l, 34l, 34l, 34l, 34l, 34l, 34l, 34l, 34l, 35l, 36l,      37l, 37l, 37l, 37l, 37l, 37l, 37l, 37l, 37l, 37l, 37l, 37l,      38l, 39l, 16l, 16l, 16l, 16l, 16l, 16l, 16l, 16l, 16l, 16l,      16l, 16l, 21l, 27l, 28l, 28l, 28l, 28l, 28l, 28l, 28l, 28l,      28l, 28l, 28l, 29l, 17l, 18l, 18l, 18l, 18l, 18l, 18l, 18l,      18l, 18l, 18l, 18l, 18l, 19l, 20l, 22l, 22l, 22l, 22l, 22l,      22l, 22l, 22l, 22l, 22l, 22l, 22l, 23l, 24l, 24l, 24l, 25l,      25l, 25l, 25l, 25l, 25l, 25l, 25l, 25l, 25l, 25l, 25l, 26l,      12l, 13l, 13l, 13l, 13l, 13l, 13l, 13l, 13l, 13l, 13l, 13l,      13l, 13l, 13l, 14l, 1l, 2l, 2l, 2l, 2l, 2l, 2l, 2l, 2l, 2l,      2l, 2l, 2l, 2l, 2l, 3l, 4l, 5l, 6l, 6l, 6l, 6l, 6l, 6l, 6l,      6l, 6l, 6l, 6l, 6l, 6l, 7l, 8l, 9l, 10l, 10l, 10l, 10l, 10l,      10l, 10l, 10l, 10l, 10l, 10l, 10l, 10l, 11l, 15l, 15l, 15l,      15l, 15l, 15l, 15l, 15l, 15l, 15l, 15l, 15l, 15l, 15l, 15l,      15l, 52l, 53l, 53l, 53l, 53l, 53l, 53l, 53l, 53l, 53l, 53l     ), .label = c("december 10", "december 13", "december 14",      "december 17", "december 19", "december 20", "december 21",      "december 24", "december 26", "december 27", "december 28",      "december 3", "december 6", "december 7", "january 3", "november 1",      "november 12", "november 15", "november 16", "november 19",      "november 2", "november 22", "november 23", "november 26",      "november 29", "november 30", "november 5", "november 8",      "november 9", "october 1", "october 11", "october 12", "october 15",      "october 18", "october 19", "october 22", "october 25", "october 26",      "october 29", "october 4", "october 5", "october 8", "september 10",      "september 13", "september 14", "september 17", "september 20",      "september 21", "september 24", "september 27", "september 28",      "september 4", "september 7"), class = "factor"), `winner/tie` = structure(c(19l,      26l, 4l, 22l, 7l, 1l, 5l, 10l, 9l, 29l, 16l, 12l, 17l, 31l,      27l, 2l, 10l, 2l, 19l, 30l, 32l, 5l, 18l, 7l, 8l, 23l, 12l,      1l, 25l, 9l, 15l, 22l, 21l, 13l, 25l, 5l, 4l, 24l, 1l, 2l,      19l, 18l, 23l, 28l, 14l, 7l, 10l, 12l, 3l, 14l, 7l, 26l,      10l, 21l, 2l, 22l, 6l, 20l, 5l, 12l, 29l, 32l, 28l, 14l,      8l, 4l, 7l, 6l, 21l, 24l, 10l, 1l, 2l, 19l, 30l, 12l, 25l,      20l, 17l, 22l, 5l, 10l, 7l, 13l, 27l, 18l, 19l, 12l, 11l,      25l, 24l, 28l, 21l, 23l, 32l, 19l, 5l, 29l, 20l, 2l, 15l,      16l, 18l, 17l, 1l, 19l, 18l, 28l, 29l, 23l, 7l, 10l, 13l,      16l, 1l, 3l, 30l, 20l, 5l, 7l, 24l, 4l, 18l, 22l, 19l, 5l,      21l, 14l, 27l, 31l, 25l, 6l, 4l, 6l, 15l, 1l, 19l, 5l, 30l,      18l, 16l, 17l, 11l, 32l, 25l, 13l, 15l, 14l, 30l, 10l, 28l,      1l, 11l, 5l, 3l, 13l, 9l, 16l, 12l, 19l, 5l, 6l, 11l, 22l,      18l, 16l, 26l, 23l, 10l, 13l, 32l, 7l, 28l, 14l, 1l, 3l,      12l, 30l, 7l, 5l, 1l, 31l, 28l, 16l, 17l, 22l, 10l, 25l,      4l, 24l, 27l, 9l, 1l, 20l, 24l, 16l, 22l, 28l, 15l, 12l,      25l, 5l, 8l, 23l, 19l, 32l, 29l, 21l, 29l, 22l, 28l, 26l,      32l, 18l, 2l, 16l, 1l, 12l, 7l, 19l, 13l, 25l, 5l, 11l, 23l,      32l, 6l, 22l, 14l, 18l, 2l, 4l, 3l, 11l, 29l, 16l, 20l, 13l,      1l, 10l, 25l, 20l, 27l, 11l, 5l, 10l, 24l, 17l, 13l, 32l,      4l, 18l, 14l, 7l, 16l, 28l, 28l, 2l, 13l, 5l, 4l, 27l, 10l,      25l, 7l, 24l, 31l), .label = c("arizona cardinals", "atlanta falcons",      "baltimore ravens", "buffalo bills", "carolina panthers",      "chicago bears", "cincinnati bengals", "cleveland browns",      "dallas cowboys", "denver broncos", "detroit lions", "green bay packers",      "houston texans", "indianapolis colts", "jacksonville jaguars",      "kansas city chiefs", "miami dolphins", "minnesota vikings",      "new england patriots", "new orleans saints", "new york giants",      "new york jets", "oakland raiders", "philadelphia eagles",      "pittsburgh steelers", "san diego chargers", "san francisco 49ers",      "seattle seahawks", "st. louis rams", "tampa bay buccaneers",      "tennessee titans", "washington redskins"), class = "factor"),      v5 = structure(c(1l, 1l, 1l, 1l, 2l, 1l, 2l, 1l, 1l, 1l,      2l, 2l, 2l, 2l, 1l, 1l, 2l, 2l, 2l, 2l, 1l, 1l, 1l, 1l, 1l,      1l, 1l, 2l, 1l, 2l, 1l, 2l, 1l, 1l, 2l, 1l, 2l, 2l, 1l, 2l,      1l, 1l, 2l, 1l, 2l, 2l, 2l, 1l, 2l, 1l, 1l, 1l, 1l, 2l, 1l,      2l, 1l, 1l, 2l, 2l, 2l, 1l, 1l, 2l, 2l, 2l, 1l, 2l, 1l, 1l,      2l, 2l, 1l, 2l, 1l, 1l, 2l, 1l, 2l, 1l, 2l, 2l, 2l, 2l, 1l,      1l, 2l, 1l, 1l, 1l, 1l, 2l, 1l, 2l, 1l, 1l, 1l, 1l, 2l, 2l,      1l, 1l, 2l, 1l, 1l, 1l, 2l, 2l, 1l, 1l, 2l, 1l, 1l, 1l, 2l,      1l, 2l, 1l, 1l, 1l, 2l, 1l, 1l, 1l, 1l, 1l, 2l, 1l, 1l, 2l,      1l, 2l, 2l, 2l, 2l, 2l, 2l, 2l, 1l, 2l, 2l, 2l, 2l, 1l, 1l,      2l, 1l, 2l, 2l, 2l, 1l, 1l, 1l, 1l, 1l, 1l, 2l, 2l, 2l, 1l,      2l, 2l, 1l, 1l, 2l, 1l, 2l, 2l, 1l, 1l, 1l, 1l, 1l, 1l, 2l,      2l, 2l, 1l, 2l, 2l, 2l, 1l, 2l, 2l, 1l, 2l, 2l, 1l, 1l, 2l,      2l, 2l, 1l, 2l, 1l, 1l, 1l, 2l, 1l, 1l, 2l, 1l, 1l, 2l, 2l,      2l, 1l, 2l, 1l, 2l, 1l, 1l, 1l, 1l, 2l, 2l, 2l, 2l, 2l, 1l,      2l, 1l, 2l, 2l, 1l, 2l, 2l, 1l, 2l, 1l, 1l, 1l, 1l, 1l, 2l,      1l, 1l, 2l, 1l, 1l, 2l, 2l, 1l, 2l, 1l, 1l, 2l, 1l, 1l, 2l,      1l, 2l, 1l, 1l, 1l, 2l, 1l, 1l, 1l, 2l, 2l, 2l, 1l, 1l, 2l,      1l, 2l), .label = c("", "@"), class = "factor"), `loser/tie` = structure(c(25l,      11l, 14l, 8l, 23l, 20l, 15l, 3l, 21l, 28l, 13l, 6l, 32l,      30l, 18l, 24l, 16l, 21l, 4l, 20l, 29l, 13l, 11l, 26l, 31l,      3l, 28l, 6l, 27l, 24l, 17l, 14l, 32l, 30l, 29l, 20l, 17l,      22l, 27l, 9l, 15l, 26l, 8l, 6l, 31l, 3l, 11l, 16l, 25l, 15l,      16l, 8l, 18l, 4l, 13l, 17l, 23l, 9l, 30l, 27l, 1l, 24l, 11l,      13l, 3l, 31l, 28l, 16l, 27l, 20l, 23l, 11l, 32l, 9l, 15l,      29l, 26l, 2l, 31l, 32l, 28l, 8l, 4l, 15l, 3l, 16l, 14l, 26l,      6l, 1l, 21l, 27l, 9l, 26l, 30l, 22l, 24l, 8l, 14l, 31l, 4l,      25l, 11l, 13l, 3l, 17l, 6l, 9l, 27l, 22l, 25l, 12l, 31l,      11l, 8l, 26l, 2l, 21l, 14l, 8l, 9l, 17l, 29l, 15l, 32l, 12l,      30l, 10l, 2l, 20l, 23l, 26l, 22l, 29l, 3l, 28l, 21l, 31l,      9l, 23l, 10l, 24l, 12l, 20l, 8l, 7l, 31l, 2l, 24l, 6l, 27l,      7l, 23l, 32l, 29l, 22l, 17l, 26l, 18l, 4l, 9l, 12l, 24l,      17l, 2l, 4l, 15l, 31l, 19l, 20l, 21l, 29l, 25l, 30l, 27l,      8l, 11l, 2l, 8l, 20l, 29l, 15l, 18l, 23l, 3l, 21l, 26l, 14l,      13l, 19l, 6l, 32l, 18l, 30l, 4l, 26l, 31l, 3l, 14l, 9l, 7l,      2l, 27l, 10l, 13l, 6l, 11l, 17l, 30l, 9l, 8l, 17l, 4l, 6l,      15l, 3l, 24l, 23l, 27l, 31l, 14l, 10l, 21l, 20l, 26l, 24l,      30l, 19l, 17l, 21l, 5l, 9l, 25l, 27l, 28l, 8l, 15l, 31l,      12l, 7l, 8l, 2l, 29l, 6l, 30l, 26l, 21l, 19l, 15l, 9l, 22l,      12l, 31l, 3l, 23l, 1l, 12l, 20l, 32l, 30l, 6l, 9l, 14l, 8l,      3l, 15l, 16l), .label = c("arizona cardinals", "atlanta falcons",      "baltimore ravens", "buffalo bills", "carolina panthers",      "chicago bears", "cincinnati bengals", "cleveland browns",      "dallas cowboys", "denver broncos", "detroit lions", "green bay packers",      "houston texans", "indianapolis colts", "jacksonville jaguars",      "kansas city chiefs", "miami dolphins", "minnesota vikings",      "new england patriots", "new orleans saints", "new york giants",      "new york jets", "oakland raiders", "philadelphia eagles",      "pittsburgh steelers", "san diego chargers", "san francisco 49ers",      "seattle seahawks", "st. louis rams", "tampa bay buccaneers",      "tennessee titans", "washington redskins"), class = "factor"),      ptsw = structure(c(18l, 23l, 17l, 21l, 23l, 21l, 10l, 9l,      17l, 24l, 17l, 21l, 7l, 32l, 10l, 16l, 21l, 14l, 30l, 16l,      14l, 14l, 16l, 14l, 18l, 27l, 17l, 37l, 33l, 10l, 13l, 10l,      22l, 9l, 2l, 17l, 31l, 14l, 36l, 29l, 39l, 21l, 17l, 16l,      25l, 18l, 14l, 28l, 13l, 6l, 26l, 20l, 13l, 14l, 37l, 17l,      12l, 16l, 27l, 7l, 14l, 13l, 3l, 17l, 23l, 4l, 17l, 8l, 20l,      29l, 6l, 32l, 15l, 20l, 28l, 14l, 14l, 21l, 28l, 24l, 17l,      16l, 24l, 21l, 15l, 6l, 24l, 17l, 27l, 15l, 17l, 10l, 17l,      27l, 21l, 20l, 17l, 14l, 17l, 1l, 24l, 13l, 18l, 34l, 16l,      26l, 13l, 3l, 17l, 24l, 6l, 19l, 10l, 35l, 24l, 19l, 13l,      40l, 19l, 21l, 23l, 23l, 11l, 18l, 17l, 27l, 22l, 17l, 7l,      24l, 28l, 12l, 12l, 27l, 12l, 29l, 17l, 17l, 1l, 20l, 19l,      10l, 8l, 36l, 20l, 1l, 9l, 14l, 35l, 7l, 19l, 24l, 8l, 34l,      6l, 14l, 14l, 23l, 20l, 10l, 23l, 7l, 35l, 28l, 10l, 20l,      21l, 14l, 20l, 14l, 10l, 21l, 29l, 15l, 9l, 23l, 17l, 13l,      27l, 31l, 17l, 32l, 28l, 24l, 5l, 13l, 7l, 35l, 20l, 25l,      16l, 9l, 13l, 14l, 13l, 1l, 20l, 25l, 39l, 18l, 23l, 28l,      14l, 5l, 17l, 14l, 11l, 21l, 21l, 9l, 20l, 20l, 25l, 28l,      13l, 24l, 30l, 20l, 14l, 23l, 6l, 24l, 28l, 25l, 13l, 28l,      16l, 16l, 8l, 38l, 10l, 6l, 10l, 22l, 13l, 7l, 28l, 24l,      28l, 10l, 18l, 10l, 9l, 14l, 28l, 17l, 25l, 10l, 20l, 24l,      12l, 10l, 20l, 14l, 13l, 26l, 26l, 27l, 7l, 10l, 13l, 18l,      21l, 20l, 13l, 24l, 16l), .label = c("10", "12", "13", "14",      "15", "16", "17", "18", "19", "20", "21", "22", "23", "24",      "25", "26", "27", "28", "29", "30", "31", "32", "33", "34",      "35", "36", "37", "38", "39", "40", "41", "42", "43", "44",      "45", "47", "48", "49", "51", "52"), class = "factor"), ptsl = structure(c(12l,      19l, 5l, 2l, 4l, 10l, 34l, 4l, 17l, 23l, 11l, 14l, 2l, 5l,      21l, 15l, 15l, 11l, 24l, 10l, 2l, 8l, 7l, 10l, 5l, 25l, 8l,      14l, 9l, 2l, 11l, 32l, 12l, 34l, 31l, 13l, 5l, 8l, 32l, 19l,      8l, 5l, 11l, 1l, 25l, 15l, 3l, 19l, 11l, 4l, 12l, 18l, 11l,      2l, 12l, 5l, 11l, 11l, 14l, 21l, 13l, 11l, 2l, 11l, 22l,      4l, 15l, 8l, 18l, 8l, 2l, 8l, 10l, 31l, 23l, 2l, 11l, 12l,      2l, 11l, 14l, 14l, 12l, 11l, 11l, 2l, 18l, 11l, 26l, 4l,      32l, 21l, 11l, 20l, 22l, 14l, 7l, 31l, 12l, 32l, 23l, 4l,      10l, 17l, 9l, 32l, 11l, 3l, 31l, 11l, 2l, 2l, 31l, 2l, 11l,      17l, 11l, 30l, 17l, 2l, 18l, 8l, 9l, 14l, 2l, 20l, 9l, 15l,      7l, 19l, 27l, 10l, 8l, 4l, 11l, 24l, 17l, 2l, 31l, 5l, 4l,      10l, 7l, 5l, 34l, 31l, 4l, 12l, 8l, 6l, 4l, 23l, 4l, 7l,      4l, 8l, 5l, 21l, 4l, 4l, 5l, 4l, 5l, 11l, 2l, 13l, 16l, 12l,      15l, 31l, 5l, 32l, 22l, 3l, 4l, 18l, 14l, 10l, 21l, 28l,      21l, 29l, 32l, 11l, 4l, 11l, 21l, 2l, 12l, 19l, 11l, 7l,      11l, 8l, 11l, 21l, 33l, 31l, 7l, 32l, 11l, 1l, 2l, 3l, 31l,      12l, 5l, 15l, 14l, 7l, 4l, 5l, 16l, 8l, 8l, 5l, 8l, 11l,      5l, 7l, 2l, 18l, 27l, 18l, 11l, 15l, 12l, 11l, 3l, 8l, 4l,      31l, 8l, 8l, 8l, 4l, 18l, 31l, 33l, 8l, 3l, 8l, 7l, 11l,      2l, 11l, 22l, 2l, 31l, 14l, 8l, 4l, 15l, 7l, 8l, 31l, 7l,      26l, 31l, 5l, 11l, 8l, 15l, 18l, 7l, 8l, 2l), .label = c("0",      "10", "12", "13", "14", "15", "16", "17", "18", "19", "20",      "21", "22", "23", "24", "25", "26", "27", "28", "29", "3",      "30", "31", "32", "33", "34", "35", "38", "39", "49", "6",      "7", "8", "9"), class = "factor"), ydsw = structure(c(72l,      151l, 58l, 52l, 103l, 122l, 13l, 4l, 130l, 65l, 51l, 45l,      10l, 37l, 102l, 102l, 32l, 106l, 158l, 52l, 83l, 64l, 64l,      97l, 16l, 137l, 72l, 33l, 140l, 70l, 103l, 59l, 74l, 113l,      12l, 126l, 123l, 5l, 136l, 132l, 147l, 21l, 146l, 81l, 88l,      141l, 67l, 137l, 69l, 47l, 135l, 132l, 59l, 34l, 88l, 121l,      81l, 132l, 8l, 73l, 49l, 115l, 60l, 46l, 157l, 3l, 117l,      49l, 165l, 161l, 31l, 60l, 116l, 69l, 79l, 45l, 63l, 94l,      128l, 148l, 93l, 134l, 68l, 92l, 99l, 44l, 115l, 80l, 167l,      38l, 123l, 96l, 23l, 112l, 68l, 66l, 101l, 36l, 138l, 88l,      29l, 87l, 121l, 156l, 114l, 131l, 48l, 46l, 96l, 139l, 30l,      155l, 15l, 57l, 152l, 76l, 24l, 170l, 89l, 81l, 142l, 118l,      27l, 24l, 143l, 122l, 48l, 76l, 41l, 151l, 169l, 136l, 19l,      104l, 11l, 139l, 108l, 34l, 48l, 94l, 34l, 23l, 22l, 160l,      142l, 10l, 36l, 17l, 162l, 97l, 159l, 93l, 85l, 78l, 96l,      75l, 95l, 94l, 43l, 69l, 28l, 24l, 125l, 111l, 76l, 113l,      79l, 109l, 127l, 73l, 109l, 86l, 130l, 54l, 55l, 54l, 39l,      96l, 87l, 154l, 164l, 145l, 127l, 6l, 4l, 144l, 27l, 163l,      98l, 9l, 25l, 41l, 100l, 96l, 62l, 50l, 133l, 120l, 90l,      129l, 67l, 120l, 150l, 1l, 39l, 84l, 40l, 124l, 42l, 82l,      119l, 134l, 126l, 64l, 49l, 18l, 153l, 27l, 7l, 61l, 35l,      87l, 149l, 103l, 20l, 116l, 48l, 123l, 14l, 78l, 83l, 110l,      95l, 81l, 2l, 11l, 166l, 51l, 91l, 98l, 89l, 98l, 141l, 63l,      77l, 156l, 129l, 132l, 106l, 131l, 29l, 7l, 48l, 26l, 56l,      67l, 105l, 168l, 44l, 53l, 71l, 42l, 72l, 156l, 90l, 118l,      107l), .label = c("126", "205", "209", "219", "231", "232",      "242", "244", "248", "256", "258", "259", "263", "268", "270",      "274", "276", "277", "280", "281", "284", "287", "289", "290",      "291", "292", "293", "294", "295", "296", "297", "299", "300",      "303", "305", "308", "309", "310", "313", "317", "318", "319",      "320", "321", "322", "323", "326", "327", "328", "329", "330",      "333", "334", "336", "337", "339", "340", "342", "344", "345",      "346", "348", "349", "350", "352", "353", "354", "355", "356",      "359", "360", "361", "362", "363", "364", "365", "366", "368",      "369", "370", "371", "372", "373", "374", "375", "376", "377",      "378", "379", "380", "381", "382", "383", "385", "386", "388",      "389", "390", "391", "393", "394", "395", "396", "397", "398",      "402", "405", "406", "407", "408", "411", "412", "413", "414",      "417", "418", "419", "420", "423", "424", "425", "427", "428",      "429", "430", "431", "433", "434", "435", "436", "437", "438",      "439", "442", "445", "446", "448", "449", "451", "453", "458",      "459", "460", "463", "467", "469", "471", "474", "480", "481",      "483", "491", "493", "497", "500", "503", "505", "507", "508",      "510", "519", "521", "522", "524", "525", "537", "546", "568",      "597", "608"), class = "factor"), tow = structure(c(1l, 4l,      1l, 2l, 1l, 2l, 2l, 2l, 4l, 4l, 1l, 1l, 2l, 2l, 2l, 3l, 2l,      1l, 3l, 3l, 2l, 2l, 2l, 3l, 1l, 2l, 2l, 3l, 1l, 3l, 1l, 2l,      1l, 2l, 2l, 1l, 1l, 2l, 2l, 1l, 1l, 2l, 2l, 1l, 3l, 3l, 3l,      1l, 3l, 3l, 1l, 1l, 3l, 2l, 1l, 2l, 4l, 1l, 2l, 1l, 1l, 2l,      4l, 1l, 1l, 2l, 3l, 2l, 2l, 3l, 3l, 1l, 4l, 1l, 1l, 4l, 2l,      1l, 3l, 4l, 3l, 4l, 1l, 1l, 1l, 3l, 2l, 1l, 4l, 1l, 5l, 3l,      1l, 1l, 2l, 1l, 4l, 2l, 2l, 3l, 2l, 1l, 2l, 2l, 1l, 1l, 2l,      2l, 2l, 1l, 3l, 2l, 1l, 1l, 5l, 1l, 1l, 3l, 4l, 1l, 1l, 1l,      2l, 1l, 3l, 2l, 3l, 1l, 3l, 2l, 3l, 3l, 1l, 3l, 2l, 4l, 3l,      1l, 3l, 1l, 1l, 1l, 2l, 1l, 3l, 2l, 3l, 4l, 2l, 1l, 1l, 3l,      1l, 1l, 3l, 2l, 3l, 1l, 1l, 2l, 1l, 1l, 1l, 1l, 2l, 1l, 1l,      3l, 2l, 2l, 1l, 2l, 1l, 1l, 1l, 3l, 2l, 3l, 1l, 4l, 1l, 3l,      2l, 3l, 2l, 2l, 2l, 3l, 1l, 2l, 1l, 4l, 1l, 1l, 2l, 3l, 1l,      2l, 3l, 1l, 2l, 1l, 3l, 1l, 2l, 2l, 3l, 2l, 1l, 2l, 1l, 3l,      2l, 1l, 2l, 1l, 1l, 3l, 2l, 2l, 3l, 3l, 2l, 2l, 2l, 1l, 1l,      2l, 1l, 1l, 2l, 3l, 1l, 1l, 1l, 2l, 1l, 2l, 3l, 2l, 4l, 2l,      2l, 1l, 3l, 6l, 3l, 1l, 2l, 1l, 2l, 3l, 2l, 1l, 3l, 1l, 2l,      2l, 2l, 1l, 2l, 1l, 1l, 2l, 1l, 4l, 1l), .label = c("0",      "1", "2", "3", "4", "5"), class = "factor"), ydsl = structure(c(168l,      69l, 70l, 85l, 32l, 142l, 44l, 6l, 59l, 102l, 135l, 140l,      106l, 50l, 34l, 138l, 79l, 130l, 106l, 87l, 17l, 67l, 87l,      108l, 128l, 172l, 88l, 97l, 143l, 23l, 129l, 102l, 133l,      82l, 41l, 125l, 132l, 87l, 5l, 105l, 63l, 118l, 109l, 4l,      159l, 137l, 60l, 90l, 42l, 157l, 167l, 158l, 89l, 78l, 156l,      23l, 30l, 97l, 144l, 11l, 164l, 84l, 39l, 163l, 124l, 52l,      136l, 57l, 125l, 130l, 58l, 160l, 48l, 43l, 89l, 96l, 141l,      146l, 66l, 22l, 96l, 65l, 117l, 134l, 151l, 91l, 143l, 178l,      163l, 169l, 33l, 3l, 166l, 150l, 171l, 121l, 106l, 114l,      123l, 39l, 122l, 99l, 51l, 86l, 52l, 48l, 71l, 20l, 9l, 116l,      110l, 2l, 15l, 52l, 37l, 120l, 173l, 149l, 111l, 17l, 144l,      136l, 84l, 161l, 36l, 140l, 127l, 75l, 69l, 149l, 162l, 99l,      82l, 56l, 136l, 102l, 152l, 29l, 19l, 120l, 21l, 161l, 121l,      107l, 101l, 39l, 80l, 122l, 127l, 105l, 72l, 124l, 19l, 8l,      17l, 46l, 14l, 12l, 101l, 83l, 14l, 115l, 24l, 95l, 92l,      148l, 151l, 35l, 68l, 47l, 94l, 104l, 177l, 103l, 117l, 98l,      72l, 83l, 50l, 96l, 16l, 127l, 1l, 112l, 122l, 109l, 49l,      28l, 139l, 155l, 114l, 45l, 131l, 61l, 145l, 53l, 62l, 69l,      86l, 48l, 128l, 25l, 21l, 76l, 9l, 124l, 93l, 113l, 175l,      75l, 25l, 26l, 165l, 63l, 119l, 116l, 154l, 121l, 82l, 54l,      10l, 128l, 141l, 138l, 102l, 137l, 131l, 55l, 112l, 113l,      47l, 73l, 74l, 86l, 77l, 117l, 145l, 40l, 7l, 64l, 42l, 147l,      114l, 104l, 129l, 81l, 174l, 11l, 18l, 176l, 67l, 107l, 26l,      100l, 13l, 27l, 38l, 170l, 121l, 43l, 155l, 126l, 142l, 131l,      153l, 72l, 31l), .label = c("125", "140", "142", "146", "156",      "173", "178", "186", "189", "190", "196", "201", "205", "210",      "211", "212", "213", "215", "216", "220", "221", "225", "226",      "227", "230", "231", "232", "240", "242", "243", "245", "246",      "247", "248", "249", "250", "254", "255", "256", "257", "258",      "263", "264", "265", "266", "267", "268", "270", "272", "273",      "274", "276", "280", "282", "284", "285", "287", "288", "289",      "290", "291", "292", "293", "294", "298", "299", "300", "301",      "302", "304", "305", "306", "307", "308", "309", "310", "312",      "313", "314", "316", "317", "318", "319", "320", "321", "322",      "323", "324", "325", "326", "328", "329", "331", "332", "333",      "334", "335", "338", "339", "341", "342", "343", "344", "345",      "347", "349", "350", "354", "355", "356", "359", "361", "363",      "364", "365", "366", "368", "369", "370", "371", "372", "375",      "376", "377", "380", "382", "383", "385", "386", "388", "389",      "391", "393", "394", "396", "397", "398", "399", "401", "402",      "406", "408", "409", "411", "412", "413", "414", "415", "416",      "417", "420", "422", "423", "424", "427", "428", "431", "432",      "433", "435", "436", "440", "444", "447", "452", "460", "461",      "464", "469", "472", "479", "493", "496", "502", "509", "512",      "538", "548"), class = "factor"), tol = structure(c(2l, 3l,      4l, 6l, 3l, 2l, 4l, 3l, 1l, 2l, 3l, 2l, 3l, 3l, 2l, 3l, 6l,      2l, 4l, 4l, 1l, 2l, 4l, 4l, 4l, 3l, 3l, 3l, 2l, 4l, 1l, 6l,      4l, 2l, 2l, 3l, 4l, 5l, 5l, 2l, 2l, 3l, 3l, 1l, 3l, 2l, 4l,      2l, 1l, 1l, 2l, 2l, 2l, 3l, 5l, 3l, 3l, 1l, 6l, 2l, 4l, 3l,      2l, 3l, 1l, 2l, 2l, 1l, 1l, 5l, 4l, 7l, 3l, 3l, 3l, 5l, 3l,      4l, 5l, 3l, 1l, 4l, 2l, 4l, 3l, 2l, 1l, 2l, 2l, 4l, 4l, 1l,      5l, 3l, 2l, 2l, 2l, 5l, 4l, 3l, 5l, 4l, 1l, 2l, 3l, 3l, 1l,      1l, 1l, 2l, 4l, 1l, 4l, 3l, 3l, 1l, 5l, 2l, 5l, 1l, 2l, 2l,      1l, 5l, 3l, 3l, 4l, 3l, 1l, 3l, 5l, 2l, 5l, 3l, 5l, 2l, 2l,      3l, 2l, 3l, 6l, 2l, 1l, 3l, 4l, 3l, 2l, 5l, 5l, 3l, 1l, 2l,      1l, 6l, 5l, 3l, 2l, 3l, 2l, 2l, 4l, 3l, 2l, 3l, 4l, 3l, 2l,      3l, 2l, 2l, 4l, 4l, 5l, 2l, 3l, 1l, 2l, 2l, 3l, 2l, 2l, 2l,      2l, 4l, 3l, 2l, 4l, 4l, 2l, 3l, 2l, 2l, 4l, 1l, 3l, 2l, 2l,      3l, 3l, 2l, 4l, 5l, 1l, 3l, 2l, 2l, 2l, 2l, 3l, 5l, 2l, 2l,      1l, 3l, 2l, 4l, 5l, 3l, 5l, 4l, 3l, 3l, 3l, 1l, 2l, 3l, 4l,      2l, 2l, 4l, 2l, 3l, 4l, 2l, 4l, 2l, 3l, 5l, 5l, 2l, 5l, 3l,      1l, 4l, 4l, 2l, 2l, 1l, 5l, 5l, 4l, 3l, 2l, 3l, 2l, 4l, 2l,      3l, 3l, 4l, 4l, 5l, 3l, 1l, 3l, 2l, 4l), .label = c("0",      "1", "2", "3", "4", "5", "6"), class = "factor")), .names = c("week",  "day", "date", "winner/tie", "v5", "loser/tie", "ptsw", "ptsl",  "ydsw", "tow", "ydsl", "tol"), row.names = c(na, -267l), class = "data.frame") 

forgive me if isn't clear, first stack overflow post.

i assume reading in pro-football-reference. cleaned presumably did.

library(xml) library(dplyr) 

first read in data

url <- "http://www.pro-football-reference.com/years/2015/games.htm" nfl_weeks <- xml::readhtmltable(url)[[1]] 

then clean data

nfl_weeks <- nfl_weeks[nfl_weeks$week != "week",][,-7] names(nfl_weeks)[5] <- 'vs' nfl_weeks[,7:ncol(nfl_weeks)] <- apply(nfl_weeks[,7:ncol(nfl_weeks)],2,as.numeric) 

followed split-apply-combine strategy

# split s <- split(nfl_weeks, nfl_weeks$`winner/tie`)[2:33] ydsw <- lapply(s, function(i) mydsw = mean(i$ydsw)) ydsw <- do.call("c", ydsw) # apply ydsl<- lapply(s, function(i) mydsw = mean(i$ydsl)) # combine ydsl <- do.call("c", ydsl) 

Comments