Id想知道如何转换此数据集列
像这样转换成小数:
-2.93955,-41.32366
这里的数学是(以经纬度为例:
(度数+分钟/ 60 +秒/ 3600)*-1(在W或S时)
这是:
(2+ 56/60 + 22,4 / 3600)*-1 = -2,93955,以相同的方式计算多头。也许有一种方法不只是写一个函数就行,但是只要我等待,我就会做这个函数。
答案 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")`