R 使用坐标确定位置
我的数据集如下所示:R 使用坐标确定位置,r,R,我的数据集如下所示: ID Start_Datetime End_Datetime Longitude Latitude 2.011e+09 2011-02-01 00:47:35 2011-02-01 00:57:05 -73.98839 40.75504 我想确定每一行是否发生在我感兴趣的地点之一,例如机场。为此,我正在做以下工作: tol <- 0.001 for (i in 1:length(DataS$latitude)
ID Start_Datetime End_Datetime Longitude Latitude
2.011e+09 2011-02-01 00:47:35 2011-02-01 00:57:05 -73.98839 40.75504
我想确定每一行是否发生在我感兴趣的地点之一,例如机场。为此,我正在做以下工作:
tol <- 0.001
for (i in 1:length(DataS$latitude) ){
if(abs(DataSet$latitude[i] - 40.644305) < tol |
abs(DataSet$latitude[i] - 40.642160) < tol)
if(abs(DataSet$longitude[i] - -73.790517) < tol |
abs(DataSet$longitude[i] - -73.788895) < tol)
{
DataSet$POI[i] <- 1
}
}
tol尝试以下解决方案:基于向量的比较和测试
基于矩形的中心而不是边界
test_df <- data.frame(latitute = runif(n = 1000), longitude = runif(n = 1000))
tol <- 0.01
lat1 <- 0.35
lat2 <- 0.37
long1 <- 0.64
long2 <- 0.70
lat12 <- (lat1 + lat2)/2
tol1 <- tol + abs(lat2 - lat1)/2
long12 <- (long1 + long2)/2
tol2 <- tol + abs(long2 - long1)/2
test_df$POI <- abs(test_df$latitute - lat12) < tol1 &
abs(test_df$longitude - long12) < tol2
test\u df尝试以下解决方案:基于向量的比较和测试
基于矩形的中心而不是边界
test_df <- data.frame(latitute = runif(n = 1000), longitude = runif(n = 1000))
tol <- 0.01
lat1 <- 0.35
lat2 <- 0.37
long1 <- 0.64
long2 <- 0.70
lat12 <- (lat1 + lat2)/2
tol1 <- tol + abs(lat2 - lat1)/2
long12 <- (long1 + long2)/2
tol2 <- tol + abs(long2 - long1)/2
test_df$POI <- abs(test_df$latitute - lat12) < tol1 &
abs(test_df$longitude - long12) < tol2
test_df另外,如果我理解正确,这个问题与坐标或poi无关。这仅仅是通过对其他列进行条件处理来高效地创建一个新列。考虑使用应用程序的一个应用程序函数来修改标题代码。这应该比R中的for循环快得多。而且,如果我理解正确,这个问题与坐标或poi无关。这仅仅是通过对其他列进行条件处理来高效地创建一个新列。考虑使用应用程序的一个应用程序函数来修改标题代码。这应该比R中的for循环快得多。这是一个更快的选项。谢谢这是一个更快的选择。谢谢