我有一个数据集,记录了不同国家在13年间观察到的动物记录,包括x、y坐标(以米为单位)和动物出现的年份。我想知道如何测量每个点的三个最近邻居之间的距离,但仅在同一年调查的点之间测量这个距离。我想找出哪些位置对彼此距离小于1000米,并获得这些位置的csv文件。
我正在使用sf软件包,能够估算点之间的距离,但无法按年份进行子集划分。我发现'spatstat'软件包可以使用'nndist'实现这一功能,但我发现它很难设置所需的窗口并理解需要处理的点模式对象。我是R的新手,对于同时使用不同类型的对象和不同软件包来工作,我感到非常困惑,因此我想知道是否有一种在sf中轻松完成这项任务的方法。我也愿意听取关于如何最有效地做到这一点的建议,如果您建议使用其他软件包或其他方式,请帮助我提供将我的数据转换为该软件包所需对象类型的代码。
谢谢!
我需要的是一个包含同一学年内,相距不超过1000米的所有位置对的csv文件。
我正在使用sf软件包,能够估算点之间的距离,但无法按年份进行子集划分。我发现'spatstat'软件包可以使用'nndist'实现这一功能,但我发现它很难设置所需的窗口并理解需要处理的点模式对象。我是R的新手,对于同时使用不同类型的对象和不同软件包来工作,我感到非常困惑,因此我想知道是否有一种在sf中轻松完成这项任务的方法。我也愿意听取关于如何最有效地做到这一点的建议,如果您建议使用其他软件包或其他方式,请帮助我提供将我的数据转换为该软件包所需对象类型的代码。
谢谢!
trial <-read.table(text =
"Country station_code lat_laea lon_laea year
Belize BF09-1 -2955950 1247610 2009
Belize BF09-10 -2953600 1248590 2009
Belize BF09-11 -2954620 1247900 2009
Belize BF11-13 -2958360 1244020 2011
Belize BF11-18 -2963740 1240290 2011
Belize BF11-19 -2963380 1242020 2011
Costa BraulioCarrilloNP-C16 -3640760 1821170 2011
Costa BraulioCarrilloNP-C17 -3640730 1823240 2011
Costa BraulioCarrilloNP-C18 -3642140 1817560 2011
Guatemala 40063 -3178260 1249780 2009
Guatemala 40596 -3183800 1246940 2009
Guatemala 43279 -3182640 1251560 2009",
header = TRUE)
trial.sp <- st_as_sf(trial, coords = c("lat_laea", "lon_laea"), crs = 3035)
plot(st_geometry(trial.sp))
test <- st_distance(trial.sp, trial.sp, by_element = FALSE, which = "Euclidean")
class(test)
test1 <- as.data.frame(test)
write_csv(test1, "test.csv")
我需要的是一个包含同一学年内,相距不超过1000米的所有位置对的csv文件。