如何将度数转换为十进制度数

How to convert degrees decimal minutes, to decimal degrees

我有数以千计的度数十进制分钟坐标,我只需要将其转换为十进制。有人问过类似的问题,但分钟和秒的格式不同,因此非常感谢任何答案。

我的数据如下:

纬度 413190,经度 1710130 E

纬度 425510,经度 1762550 W

...

解释一下第一行,lat: 41 degrees, 31.90 minutes, lon: 171 degrees, 01.30 minutes East.

提前致谢!

假设你的数据集为列,lat为N,lon为字符串: 这是我从

修改的一些代码
library(measurements)
df <- data.frame(lat = c(413190, 425510), lon = c("1710130 E", "1762550 W")) #assuming lat is N
df$nlat <- paste0(substr(df$lat, 1, nchar(df$lat) - 4), " ", substr(df$lat, nchar(df$lat) - 3, nchar(df$lat) - 2), ".", substr(df$lat, nchar(df$lat) - 1, nchar(df$lat)))
df$nlon <- paste0(substr(df$lon, 1, nchar(df$lon) - 6), " ", substr(df$lon, nchar(df$lon) - 5, nchar(df$lon) - 4), ".", substr(df$lon, nchar(df$lon) - 3, nchar(df$lon) - 2))
df$nlat <- as.numeric(measurements::conv_unit(df$nlat, from = 'deg_dec_min', to = 'dec_deg'))
df$nlon <- as.numeric(measurements::conv_unit(df$nlon, from = 'deg_dec_min', to = 'dec_deg'))
df$nlon[substr(df$lon, nchar(df$lon), nchar(df$lon)) == "W"] <- -1*df$nlon[substr(df$lon, nchar(df$lon), nchar(df$lon)) == "W"]

结果:

     lat       lon     nlat      nlon
1 413190 1710130 E 41.53167  171.0217
2 425510 1762550 W 42.91833 -176.4250

不确定是否有更漂亮的方法。 祝你好运!