Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中,如何将经度和纬度转换为可在ggplot2或ggmap中使用的格式_R_Ggplot2_Coordinates_Geography_Ggmap - Fatal编程技术网

在R中,如何将经度和纬度转换为可在ggplot2或ggmap中使用的格式

在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

我得到了一个原始的经纬度数据,它的格式不能被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

你把原始数据转换成浮点值的公式是什么?这就是我要问的。有什么算法或R包可以帮助你吗?我想问你是否可以用文字解释一下你用来转换数据的规则?经度的原始数据是如何对应于-2.748值的?@Synergist刚刚修改了这个问题模拟数据,-2.748和上面的原始数据之间没有关系。我只是用-2.748来显示我想要的数据格式。