Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用坐标确定位置_R - Fatal编程技术网

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循环快得多。这是一个更快的选项。谢谢这是一个更快的选择。谢谢