我得到了一份原始的经纬度数据,其格式无法被R地图处理。因此,我想知道是否有一些R函数或算法可以帮助我将这些原始数据转换为可读格式(也许是UTM)。以下是我拥有的原始数据:
纬度: "32-14-23 N" "31-04-27 N" "33-45-28 N"
经度: "121-22-38 W" "119-30-05 W" "122-47-52 W"
我希望将其转换成如下格式(以下示例仅为模拟数据):
经度: -2.748
纬度: 53.39
我得到了一份原始的经纬度数据,其格式无法被R地图处理。因此,我想知道是否有一些R函数或算法可以帮助我将这些原始数据转换为可读格式(也许是UTM)。以下是我拥有的原始数据:
纬度: "32-14-23 N" "31-04-27 N" "33-45-28 N"
经度: "121-22-38 W" "119-30-05 W" "122-47-52 W"
我希望将其转换成如下格式(以下示例仅为模拟数据):
经度: -2.748
纬度: 53.39
看起来您的数据以度/分/秒的格式存在,而您希望将其转换为十进制格式。您可以使用sp
软件包中的char2dms
函数将字符字符串转换为度-分-秒对象,然后使用as.numeric
将其转换为十进制。
示例:
> as.numeric(sp::char2dms("32d14'23\"N"))
[1] 32.23972
> as.numeric(sp::char2dms("121d22'38\" W"))
[1] -121.3772
需要注意的是,char2dms
寻找的是类似于 32d14'23" N
而不是 32-14-23 N
的格式,因此您可能需要组装正确的字符串。可以使用 magrittr
管道链:
"32-14-23 N" %>%
sub('-', 'd', .) %>%
sub('-', '\'', .) %>%
sub(' ', '" ', .) %>%
char2dms %>%
as.numeric