你可以用
map2_dfr
,使用
.id
标记以指定输出中的年份:
page_span <- 1:11
year_span <- 1956:1958
years <- sort(rep(year_span, length(page_span)))
names(years) <- years # need to name years for .id to work
pages <- rep(page_span, length(year_span))
map2_dfr(years, pages, page_season_func, .id="year")
输出:
# A tibble: 6 x 6
year Speler Team Geboren Lengte Positie
<chr> <chr> <chr> <chr> <chr> <chr>
1 1956 Sjeng Adang Roda JC Kerk⦠04.07.19⦠??? MV
2 1956 Wim Anderiesen jr. AFC Ajax 02.09.19⦠??? VD
3 1956 Wim Andriesen AFC Ajax 09.02.19⦠??? MV
4 1956 Aad Bak Feyenoord 18.06.19⦠??? MV
5 1956 Huub Bisschops Roda JC Kerk⦠22.01.19⦠??? AV
6 1956 Wim Bleijenberg AFC Ajax 05.11.19⦠??? AV
一些变化
page_season_func()
:
-
seizoen2
创建,这使得
y1-y2
格式来自
y1
作为输入
-
无需添加
year
列,现在可以使用
地图2
的
身份证
论点
page_season_func <- function(seizoen, page) {
cat(".")
seizoen2 <- paste(seizoen, seizoen+1, sep="-")
df <- read_html(paste0("http://www.voetbal.com/spelerslijst/ned-eredivisie-",
seizoen2,
"/nach-name/",
page)) %>%
html_nodes("table") %>%
html_table(fill=TRUE) %>%
as.data.frame() %>%
as.tbl() %>%
select(Speler, Team, Geboren, Lengte, Positie)
}