按年份计算的点模式的最近邻距离
Nearest-neighbour distances of a point pattern by year
我想用 spatstat
按年计算点模式的最近邻距离 (NND),但出现错误,尽管我看不出与 [=12= 中提供的示例有任何区别].正确的做法是什么?
library(spatstat)
#Build point pattern
pp <- structure(list(window = structure(list(type = "rectangle", xrange = c(952727.038715708,
969663.326063713), yrange = c(1928725.27732809, 1943334.46685032
), units = structure(list(singular = "unit", plural = "units",
multiplier = 1), class = "unitname")), class = "owin"), n = 6L,
x = c(959238.044802669, 968582.344942023, 960218.207335433,
969663.326063713, 964665.091671559, 952727.038715708), y = c(1941763.77812852,
1934201.29833662, 1943334.46685032, 1939411.6354699, 1928725.27732809,
1931868.51667007), markformat = "vector", marks = c("1994",
"1994", "2005", "2005", "2005", "2005")), class = "ppp")
#Calculate NNDs
nndist(pp, by=marks(pp))
#Error in split.ppp(X %mark% idX, f = by, un = FALSE) :
# f must be a factor, a logical vector, a tessellation, a window, an image, or the name of a column of marks
报错提示:
> nndist(pp, by=marks(pp))
Error in split.ppp(X %mark% idX, f = by, un = FALSE) :
f must be a factor, a logical vector, a tessellation, a window, an image, or the name of a column of marks
表示marks
应该是一个因子,逻辑向量,或者一个镶嵌。
经查,pp$marks
是一个字符:
> str(pp$marks)
chr [1:6] "1994" "1994" "2005" "2005" "2005" "2005"
将其转换为因子可以解决问题:
pp$marks <- as.factor(pp$marks)
nndist(pp, by=marks(pp))
1994 2005
[1,] 12021.108 1851.427
[2,] 12021.108 5321.291
[3,] 1851.427 10227.359
[4,] 5321.291 10227.359
[5,] 6732.880 11797.483
[6,] 11845.227 12344.920
我想用 spatstat
按年计算点模式的最近邻距离 (NND),但出现错误,尽管我看不出与 [=12= 中提供的示例有任何区别].正确的做法是什么?
library(spatstat)
#Build point pattern
pp <- structure(list(window = structure(list(type = "rectangle", xrange = c(952727.038715708,
969663.326063713), yrange = c(1928725.27732809, 1943334.46685032
), units = structure(list(singular = "unit", plural = "units",
multiplier = 1), class = "unitname")), class = "owin"), n = 6L,
x = c(959238.044802669, 968582.344942023, 960218.207335433,
969663.326063713, 964665.091671559, 952727.038715708), y = c(1941763.77812852,
1934201.29833662, 1943334.46685032, 1939411.6354699, 1928725.27732809,
1931868.51667007), markformat = "vector", marks = c("1994",
"1994", "2005", "2005", "2005", "2005")), class = "ppp")
#Calculate NNDs
nndist(pp, by=marks(pp))
#Error in split.ppp(X %mark% idX, f = by, un = FALSE) :
# f must be a factor, a logical vector, a tessellation, a window, an image, or the name of a column of marks
报错提示:
> nndist(pp, by=marks(pp))
Error in split.ppp(X %mark% idX, f = by, un = FALSE) :
f must be a factor, a logical vector, a tessellation, a window, an image, or the name of a column of marks
表示marks
应该是一个因子,逻辑向量,或者一个镶嵌。
经查,pp$marks
是一个字符:
> str(pp$marks)
chr [1:6] "1994" "1994" "2005" "2005" "2005" "2005"
将其转换为因子可以解决问题:
pp$marks <- as.factor(pp$marks)
nndist(pp, by=marks(pp))
1994 2005
[1,] 12021.108 1851.427
[2,] 12021.108 5321.291
[3,] 1851.427 10227.359
[4,] 5321.291 10227.359
[5,] 6732.880 11797.483
[6,] 11845.227 12344.920