在R中,如何将经度和纬度转换为可在ggplot2或ggmap中使用的格式
我得到了一个原始的经纬度数据,它的格式不能被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在R中,如何将经度和纬度转换为可在ggplot2或ggmap中使用的格式,r,ggplot2,coordinates,geography,ggmap,R,Ggplot2,Coordinates,Geography,Ggmap,我得到了一个原始的经纬度数据,它的格式不能被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包中的c
纬度: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
你把原始数据转换成浮点值的公式是什么?这就是我要问的。有什么算法或R包可以帮助你吗?我想问你是否可以用文字解释一下你用来转换数据的规则?经度的原始数据是如何对应于-2.748值的?@Synergist刚刚修改了这个问题模拟数据,-2.748和上面的原始数据之间没有关系。我只是用-2.748来显示我想要的数据格式。