Hi, I used this for something similar. You might have to edit it for your uses. It takes a while:
convert_data_wkb_sf <- function(df){
# initial conversion to wkt
initial <- df %>%
purrr::pmap(~c(...)) %>%
purrr::map(~data.frame(.x) %>%
tibble::rownames_to_column(var = "type") %>%
dplyr::rename(value = .x) %>%
tidyr::pivot_wider(., names_from = type, values_from = value)) %>%
purrr::map(~dplyr::mutate(., geometry = wellknown::wkb_wkt(wkb::hex2raw(geometry)))) %>%
dplyr::bind_rows()
# to sf
sf::st_as_sf(initial, wkt ="geometry",
stringsAsFactors = FALSE,
crs = 4326)
}