将Rt和Long转换为R中的小数

时间:2019-11-13 20:33:49

标签: r geolocation

Id想知道如何转换此数据集列

Print of the some rows of the dataset

像这样转换成小数:

-2.93955,-41.32366

这里的数学是(以经纬度为例:

(度数+分钟/ 60 +秒/ 3600)*-1(在W或S时)

这是:

(2+ 56/60 + 22,4 / 3600)*-1 = -2,93955,以相同的方式计算多头。也许有一种方法不只是写一个函数就行,但是只要我等待,我就会做这个函数。

1 个答案:

答案 0 :(得分:0)

有助于回答的问题:

您可以提供一个可复制的示例,以便我们了解单元格的内容吗?如果度,分和秒都在单独的列中,则我认为您的上述公式会很好。如果没有,则可以从measurements包中尝试以下操作(假设度和分钟分别由2位数字组成(即,每个数字都有前导零)):

df$lat<-df$lat%>%str_replace_all("(.{2})", "\\1 ")%>%str_trim() substr(df$lat,9,9)<-"." df$lat<-as.numeric(conv_unit(df$lat,from='deg_min_sec',to='dec_deg'))

对于经度,只需将df$lat切换为df$long,然后离开。

基于提供的格式的版本

   `df$lat<-gsub('°','',df$lat)
    df$lat<-gsub('\'','',df$lat)
    df$lat<-gsub('\\"',"",df$lat)
    df$lat<-gsub('S',"",df$lat)
    df$lat=measurements::conv_unit(df$lat,from = "deg_min_sec",to="dec_deg")`
相关问题