【发布时间】:2020-01-01 15:04:33
【问题描述】:
如果我们有 latitude 和 longitude ,我需要找到一对之间的距离。还有条件如果任何变量为空,那么我们的结果应该是Null,如果我们有值den,它应该给出距离..如何为相同的创建循环?
Pairs Latitude Longitude
16285 50.0354 19.2343
16285 50.0748 19.9125
16283
16283
16281
16281
16279
16279
16277
16277
16275
16275
16273
16273
16271 51.7549 19.463
16271 50.5908 21.1178
16269 33.5912 130.4013
16269 34.8234 134.8785
Pairs Latitude Longitude distance
16285 50.0354 19.2343 500
16285 50.0748 19.9125 500
16283
16283
16281
16281
16279
16279
16277
16277
16275
16275
16273
16273
16271 51.7549 19.463 200
16271 50.5908 21.1178 200
16269 33.5912 130.4013 100
16269 34.8234 134.8785 100
如何通过循环实现这一点
标题
lat1 = as.numeric(fd2[3,3]) lat2 = as.numeric(fd2[4,3])
long1 =as.numeric(fd2[3,4])
long2 =as.numeric(fd2[4,4])
earth.dist <- function (long1, lat1, long2, lat2) { rad <- pi/180
a1 <- lat1 * rad
a2 <- long1 * rad
b1 <- lat2 * rad
b2 <- long2 * rad
dlon <- b2 - a2
dlat <- b1 - a1
a <- (sin(dlat/2))^2 + cos(a1) * cos(b1) * (sin(dlon/2))^2
c <- 2 * atan2(sqrt(a), sqrt(1 - a))
R <- 6378.145
d <- R * c
return(d) }
dist_km <- earth.dist(long1,lat1,long2,lat2)
dist_mi <- dist_km / 1.609344
myout <- data.frame("dist_km" = dist_km, "dist_mi" = dist_mi)
条件: 检查对是否相等 如果存在任何值,则关联的 Latitude 和 Longitude 不应为 null ,那么它应该显示 null 。如果所有条件 满足然后是的。
【问题讨论】:
-
您能否以易于粘贴的形式提供您的数据 (hints here)?给定输入数据的预期结果是什么?
标签: r loops conditional-statements