使用这个例子中的数据明白我的意思现在确定另一点的半径内的最大点?
tag <- as.character(c(1,2,3,4,5,6,7,8,9,10))
species <- c("A","A","A","A","B","B","B","C","C","D")
size <- c(0.10,0.20,0.25,0.30,0.30,0.15,0.15,0.20,0.15,0.15)
radius <- (size*40)
x <- c(9,4,25,14,28,19,9,22,10,2)
y <- c(36,7,15,16,22,24,39,20,34,9)
data <- data.frame(tag, species, size, radius, x, y)
# Plot the points using qplot (from package tidyverse)
qplot(x, y, data = data) +
geom_point(aes(colour = species, size = size))
,你可以看到的情节,就是我想要做的是为每个单独的“物种”点,我想找出最大点在* 40的半径范围内。
例如,在图的左下方,可以看到物种A(标记2)将产生足够大的半径以包含接近物种D点。
然而,图的最右侧(标记3)上的物种A点会产生足够大的半径以包含紧密物种B和物种C点,在这种情况下,我会想要某种类型的输出来识别物种A半径内的最大个体。
我想知道我可以在这个数据集上运行(如果有的话),以获得找到最大的“半径内的”点每个物种A点和获得类似这样的输出:
物种甲点 ---- 最大半径内点
物种A标签1 -----物种C标签9
物种A标签2 -----种类d标签10
物种A标签3 -----物种B标签5
物种A标签4 -----物种C标签8
我用spatstat和CTFSpackage使在过去的一些情节但我无法弄清楚如何“找到半径内最大的邻居”。也许我可以在ArcMAP中解决这个问题?另外,这只是一个小例子数据集。实际上,我会想要找到“数以千计的点内半径最大的邻居”。
任何帮助或反馈将不胜感激。
在'base'可以只计算每个点的欧几里得距离,以各物种A标签作为'SQRT((X1-X2)^ 2 +(Y1-Y2)^ 2)'。一旦你有一个到Species A标签的距离矢量,你可以使用'max(距离_矢量[距离_矢量<40])'。查看是否可以为单个案例进行设置,然后针对每个物种A标记进行迭代。 – Djork
整个个体(或其中心点)是否需要落入该半径? –
随着物种一个标签1,你有B 7也有相同的大小...或者我不是正确的理解? – Suren