我有这个数据框:
Lat Long
59 44 50 151 45 11
59 49 28 154 52 56
59 46 42 150 45 15
如何将其转换为十进制列?
纬度的单位为 dd mm ss,长的单位为 ddd mm ss
我在这里找到了类似的解决方案,但无法针对我的情况调整正则表达式。
将地理坐标从度数转换为十进制 https://stackoverflow.com/questions/14404596/converting-geo-coordinates-from-degree-to-decimal
试试这个功能:
angle2dec <- function(angle) {
angle <- as.character(angle)
x <- do.call(rbind, strsplit(angle, split=' '))
x <- apply(x, 1L, function(y) {
y <- as.numeric(y)
y[1] + y[2]/60 + y[3]/3600
})
return(x)
}
然后您可以将其应用到数据框中的每一列:
new_df <- apply(df, 2L, angle2dec)
new_df
Lat Long
[1,] 59.74722 151.7531
[2,] 59.82444 154.8822
[3,] 59.77833 150.7542
or just
df$Lat <- angle2dec(df$Lat)
df$Long <- angle2dec(df$Long)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)