Skip to contents

Project Status: Active – The project has reached a stable, usable state and is being actively developed. cran checks R-CMD-check rstudio mirror downloads cran version

parzer parses messy geographic coordinates


You may get data from a published study or a colleague where the coordinates are in some messy character format that you’d like to clean up to get all decimal degree numeric data.

parzer API:

  • parse_hemisphere
  • parse_lat
  • parse_llstr
  • parse_lon
  • parse_lon_lat
  • parse_parts_lat
  • parse_parts_lon
  • pz_d
  • pz_degree
  • pz_m
  • pz_minute
  • pz_s
  • pz_second


For example, parse latitude and longitude from messy character vectors.

parse_lat(c("45N54.2356", "-45.98739874", "40.123°"))
#> [1]  45.90393 -45.98740  40.12300
parse_lon(c("45W54.2356", "-45.98739874", "40.123°"))
#> [1] -45.90393 -45.98740  40.12300

And you can even split and parse strings that contain latitude and longitude together.

parse_llstr(c("4 51'36\"S, 101 34'7\"W", "40.123°; 45W54.2356"))
#>      lat        lon
#> 1 -4.860 -101.56861
#> 2 40.123  -45.90393

See more in the Introduction to the parzer package vignette.


Stable version

Development version


Similar art

  • sp::char2dms: is most similar to parzer::parse_lat and parzer::parse_lon. However, with sp::char2dms you have to specify the termination character for each of degree, minutes and seconds. parzer does this for the user.
  • biogeo::dms2dd: very unlike functions in this package. You must pass separate degrees, minutes, seconds and direction to dms2dd. No exact analog is found in parzer, whose main focus is parsing messy geographic coordinates in strings to a more machine readable version


  • Please report any issues or bugs.
  • License: MIT
  • Get citation information for parzer in R doing citation(package = 'parzer')
  • Please note that this package is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.