Привязать новые столбцы к DF в цикле For R - PullRequest
0 голосов
/ 01 октября 2018

У меня есть цикл, который проходит через список команд 1 на 1 и записывает выходные данные в .csv.Таким образом, у меня есть 31 отдельный .csv, названный teamRename, который имеет 1 столбец и это player_data.Я хотел бы объединить все в один DF и экспортировать 1 DF в .csv.Итак, 31 колонна.Кроме того, строки могут не совпадать по количеству в каждом столбце команды / кадре данных.

Вот сценарий на данный момент:

library(rvest)
library(dplyr)

# teams
c("Anaheim-Ducks","Arizona-Coyotes","Boston-Bruins","Buffalo-Sabres",
  "Calgary-Flames","Carolina-Hurricanes","Chicago-Blackhawks","Colorado-Avalanche",
  "Columbus-Blue-Jackets","Dallas-Stars","Detroit-Red-Wings","Edmonton-Oilers",
  "Florida-Panthers","Los-Angeles-Kings","Minnesota-Wild","Montreal-Canadiens",
  "Nashville-Predators","New-Jersey-Devils","New-York-Islanders","New-York-Rangers",
  "Ottawa-Senators","Philadelphia-Flyers","Pittsburgh-Penguins","San-Jose-Sharks",
  "St-Louis-Blues","Tampa-Bay-Lightning","Toronto-Maple-Leafs","Vancouver-Canucks",
  "Vegas-Golden-Knights","Washington-Capitals","Winnipeg-Jets"
  ) ->
  teams

for (team in teams){
  tryCatch({

    #null df
    roster <- NULL

    # Get Website
    url <- read_html(paste0('https://www.dailyfaceoff.com/teams/', team,'/line-combinations/stats'))

    # Players in lineup
    player_data <- url %>%
      html_nodes('.player-name') %>%
      html_text()

    # remove numbers and # from name
    player_data <- sub("\\s+#.*", "", player_data)

    # Rename Team
    team_rename <- gsub("-", "_", team, fixed=TRUE)
    teamRename <- gsub("-", " ", team, fixed=TRUE)

    # Print Team
    print(team_rename)

    # create roster dataframe
    roster <- data.frame(Player = player_data)

    # Bind rosters to roster_df
    setwd('//LVS_DB/Users/Mike/Desktop/DB_LVS_SHARE/dailyfaceoffroster')
    write_delim(roster, paste0(teamRename,'.csv'), delim = ',')

  }, error = function(e) {message(paste0(e, "\n"))})
}
...