Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.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中使用group_by()时_R_Group By_Tidyverse_Mutate_Nearest Neighbor - Fatal编程技术网

计算';最近邻';在R中使用group_by()时

计算';最近邻';在R中使用group_by()时,r,group-by,tidyverse,mutate,nearest-neighbor,R,Group By,Tidyverse,Mutate,Nearest Neighbor,我试图找到轨道线段内GPS坐标的质心位置。然后求出这些质心点与同一轨道线段GPS坐标之间的最近邻指标 到目前为止,我已经找到了每一段的质心,然后找到了一种方法来获得这些最近邻的索引到我的GPS坐标,但无法使R只找到同一段内的最近邻 # Calculate the average Latitude/Longitude for each 'Segment' data_update <- data %>% as.tibble() %>% group_by(Segment) %>

我试图找到轨道线段内GPS坐标的质心位置。然后求出这些质心点与同一轨道线段GPS坐标之间的最近邻指标

到目前为止,我已经找到了每一段的质心,然后找到了一种方法来获得这些最近邻的索引到我的GPS坐标,但无法使R只找到同一段内的最近邻

# Calculate the average Latitude/Longitude for each 'Segment'
data_update <- data %>% as.tibble() %>% 
group_by(Segment) %>% mutate(ave_lat = mean(Latitude), ave_lon = mean(Longitude))


# Find the nearest neighbour
install.packages('RANN')
library(RANN)

closest <- RANN::nn2(data_update[,2:3], data_update[,4:5], k = 1, searchtype = "radius", radius = 1) 
closest <- sapply(closest, cbind) %>% as_tibble

# closest produces two columns nn.idx and nn.dist - I need nn.idx only

# data_update[,2] = Longitude values (decimal degrees)
# data_update[,3] = Latitude values (decimal degrees)
# data_update[,4] = average longitude value for each Segment (decimal degrees)
# data_update[,5] = average latitude value for each Segment (decimal degrees)

#计算每个“段”的平均纬度/经度
数据更新%as.tible()%>%
按(段)分组%>%变异(平均纬度=平均纬度,平均经度=平均经度))
#找最近的邻居
install.packages('RANN')
图书馆(RANN)

我不完全明白你需要做什么,你能提供一些更详细的解释吗?我不明白如何在段内计算nn2,因为
nn2
需要两条信息,即两组坐标。两组坐标位于同一数据框中-第一组是经度和纬度列,第二组是ave_lon和ave_lat列。需要找到每个段内最接近经度/纬度的ave_lon/ave_lat值的nn.idx。这更有意义吗?我不完全明白你需要做什么,你能提供一些更详细的解释吗?我不明白如何在段内计算nn2,因为
nn2
需要两条信息,即两组坐标。两组坐标位于同一数据框中-第一组是经度和纬度列,第二组是ave_lon和ave_lat列。需要找到每个段内最接近经度/纬度的ave_lon/ave_lat值的nn.idx。这更有意义吗?