r-使用baseballR提取日期范围的最佳方法



我正试图从MLB api中提取游戏信息。我可以按日期提取,但我当天不能使用**通配符,否则我会收到HTTP错误400。

library(tidyverse)
library(baseballr)
games <- get_game_pks_mlb(date = '2021-04-01', level_ids = 1)
games %>%
select(game_pk, teams.away.team.name, teams.home.team.name)
game_pk teams.away.team.name  teams.home.team.name
1   634642    Toronto Blue Jays      New York Yankees
2   634645    Cleveland Indians        Detroit Tigers
3   634638      Minnesota Twins     Milwaukee Brewers

然而,我不想每天都进行扫描,因为1(这需要很长时间,2(这会发送很多请求。另外,在我提取所有这些信息后,我将不得不再次分段并逐个提取信息。

我认为某种for循环可以实现这一点,但出于某种原因,我真的不善于理解for和while循环。

编辑:基于最初的期望,我尝试了以下解决方案,并得到了以下结果:

x <- c("2021-04-01", "2021-04-02")
games <- as_tibble()
for (x in x) {
games <- rbind(games, get_game_pks_mlb(date = x, level_ids = 1))
}
Error in rbind(deparse.level, ...) : 
numbers of columns of arguments do not match
games <- get_game_pks_mlb(date = x, level_ids = 1)
Error: lexical error: invalid char in json text.
http://statsapi.mlb.com/api/v1/
(right here) ------^

您可以尝试类似的东西

dates <- c("2021-04-01", "2021-04-02", "2021-04-03")
games <- data.frame()
for (date in dates) {
games <- rbind(games, get_game_pks_mlb(date = date, level_ids = 1))
}

因此,首先创建一个你想要检索的日期向量,然后在这些日期上循环并将这些数据帧绑定在一起。这不是最好的方式,但却是一个很好的开始方式。

相关内容

  • 没有找到相关文章

最新更新