我想我的地理坐标从度到小数转换,我的数据如下:转换地理距离度坐标转换为十进制
lat long
105252 30°25.264 9°01.331
105253 30°39.237 8°10.811
105255 31°37.760 8°06.040
105258 31°41.190 8°06.557
105259 31°41.229 8°06.622
105260 31°38.891 8°06.281
我有这样的代码,但我不明白为什么它不工作:
convert<-function(coord){
tmp1=strsplit(coord,"°")
tmp2=strsplit(tmp1[[1]][2],"\\.")
dec=c(as.numeric(tmp1[[1]][1]),as.numeric(tmp2[[1]]))
return(dec[1]+dec[2]/60+dec[3]/3600)
}
don_convert=don1
for(i in 1:nrow(don1)){don_convert[i,2]=convert(as.character(don1[i,2])); don_convert[i,3]=convert(as.character(don1[i,3]))}
转换函数的工作原理,但我要求循环为我做这项工作的代码不起作用。
任何建议都可以解决。
它看起来像转换功能期望度,分钟和秒,但你的输入似乎有度和浮点分钟,没有秒字段。它看起来并不像正确处理负值。但不确定这些问题是否与您的问题有关。 –