@@ -189,6 +189,7 @@ weather_dl <- function(station_ids,
189189 }else {
190190s.start <- as.Date(start )
191191if (s.start > Sys.Date())s.start <- Sys.Date()
192+ if (s.start < as.Date(" 1840-01-01" ))s.start <- as.Date(" 1840-01-01" )# Earliest date API will return
192193msg.start <- start
193194 }
194195
@@ -393,14 +394,17 @@ weather_dl <- function(station_ids,
393394weather_single <- function (date_range ,s ,interval ,encoding ) {
394395
395396w <- dplyr :: tibble(date_range = date_range )
396- w <- dplyr :: mutate(w ,html = purrr :: map(.data $ date_range ,
397- ~ weather_html(station_id = s ,
398- date = .x ,
399- interval = interval )))
400- w <- dplyr :: mutate(w ,data = purrr :: map(.data $ html ,
401- ~ weather_raw(. ,
402- encoding = encoding ,
403- header = TRUE )))
397+ w <- dplyr :: mutate(
398+ w ,
399+ html = purrr :: map(.data $ date_range ,~ weather_html(station_id = s ,
400+ date = .x ,
401+ interval = interval )),
402+ data = purrr :: map(.data $ html ,~ weather_raw(.x ,
403+ encoding = encoding ,
404+ header = TRUE )),
405+ n = purrr :: map_int(.data $ data ,ncol ))
406+
407+ w <- dplyr :: filter(w ,.data $ n > 1 )# Drop requests with no data
404408w <- dplyr :: select(w ," data" )
405409
406410if (utils :: packageVersion(" tidyr" )> " 0.8.99" ) {