|
|
|
|
|
|
|
|
url <- "https://www.data.jma.go.jp/obd/stats/etrn/view/available_table.php?prec_no=44&block_no=47662" |
|
|
|
|
|
suppressMessages({ |
|
|
if (!requireNamespace("rvest", quietly = TRUE) || |
|
|
!requireNamespace("xml2", quietly = TRUE)) { |
|
|
stop("Missing packages: please install 'rvest' and 'xml2'.") |
|
|
} |
|
|
}) |
|
|
|
|
|
doc <- xml2::read_html(url) |
|
|
tables <- rvest::html_table(doc, fill = TRUE) |
|
|
|
|
|
start_years <- c() |
|
|
|
|
|
for (tbl in tables) { |
|
|
if (nrow(tbl) == 0) { |
|
|
next |
|
|
} |
|
|
|
|
|
name_norm <- tolower(gsub("\\s+", " ", names(tbl))) |
|
|
start_cols <- which(grepl("start", name_norm)) |
|
|
|
|
|
if (length(start_cols) == 0) { |
|
|
next |
|
|
} |
|
|
|
|
|
for (idx in start_cols) { |
|
|
values <- suppressWarnings(as.numeric(gsub("[^0-9]", "", tbl[[idx]]))) |
|
|
values <- values[!is.na(values)] |
|
|
start_years <- c(start_years, values) |
|
|
} |
|
|
} |
|
|
|
|
|
if (length(start_years) == 0) { |
|
|
stop("No start year values found in tables.") |
|
|
} |
|
|
|
|
|
cat(min(start_years), "\n") |
|
|
|