При подстановке фрейма данных во время цикла for я получаю фрейм данных с нулевой строкой вместо одной строки, как предполагалось? - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь создать вектор, содержащий EFG% баскетболиста для диапазона сезонов, т.е. если игрок выстрелил 45%, а затем 50% в течение двух сезонов, вектор будет выглядеть так (.45, .50),Я использую цикл for, чтобы перебрать введенный пользователем диапазон сезонов.Я собираю фрейм данных всех игроков за сезон, а затем пытаюсь поместить этот фрейм данных только в ряд игроков, о которых я хочу знать.Однако при этом я получаю фрейм данных нулевой строки вместо одной строки.При выполнении той же операции за пределами цикла for она работает отлично.Мой код функции ниже.

efgVectorFunction <- function(playerName, firstSeason, lastSeason) {
  require(ballr)
  emptyVector <- numeric(0)
  for(i in firstSeason:lastSeason) {
    seasonStats <- NBAPerGameStatistics(season = i)
    playerSeasonStats <- subset(seasonStats, seasonStats$player == "playerName")
    seasonEFG <- as.numeric(playerSeasonStats[ ,-c(1:17, 19:31)])
    efgVector <- c(emptyVector, seasonEFG)
  }
  return(efgVector)
}

Проблема в том, что этот код возвращает [NA], поскольку подмножество playerSeasonStats заканчивается нулевыми строками.Вне цикла for этот код работает нормально:

test <- NBAPerGameStatistics(season = 2018)
testSingle <- subset(test, test$player == "Russell Westbrook")

Любые идеи о том, как это исправить, будут высоко оценены.

...