Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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 使用ppx和nndist查找每种类型的最近邻_R_Spatial_Nearest Neighbor_Spatstat - Fatal编程技术网

R 使用ppx和nndist查找每种类型的最近邻

R 使用ppx和nndist查找每种类型的最近邻,r,spatial,nearest-neighbor,spatstat,R,Spatial,Nearest Neighbor,Spatstat,对于一个包含三个协变量和一个治疗指标的数据集,我试图找到每个个体的最近邻。特别是,我想在每个治疗组中找到最近的邻居 # Generate a treatment indicator factor treatment <- factor(data_train[,"a"], levels = c("0", "1"), labels = c("Untreated", "Treated")) # Put the covariate data into 'points' format pointp

对于一个包含三个协变量和一个治疗指标的数据集,我试图找到每个个体的最近邻。特别是,我想在每个治疗组中找到最近的邻居

# Generate a treatment indicator factor
treatment <- factor(data_train[,"a"], levels = c("0", "1"), labels = c("Untreated", "Treated"))

# Put the covariate data into 'points' format
pointpattern <- ppx(data = data.frame(data_train[, c("Z1", "Z2", "Z3")], "Treatment" = treatment), coord.type = c("s", "s", "s", "m"))

# Find the nearest neighbour of each type
dists <- nndist(X = pointpattern, by = marks(pointpattern))
#生成治疗指标因子

治疗本例中使用的函数
nndist.ppx
无法识别参数
by

这是关于
R
中的“类和方法”。函数
nndist
是通用的;在类为“ppx”
的对象上调用
nndist
时,系统调用函数
nndist.ppx
,该函数是该类的“方法”

您可以通过查看其帮助文件来检查
nndist.ppx
的功能;它不支持的参数

还有其他的
nndist
方法可以通过
识别参数
,例如
nndist.ppp
,我猜您正在查看相关文档

我们将在
spatstat
中更新代码,以便
nndist.ppx
也可以使用此功能

同时,您可以使用函数
nncross.ppx
查找从一组点到另一组点的最近距离。以下是如何获得您想要的结果:

Y <- split(pointpattern) # divide into groups
m <- length(Y) # number of groups
n <- npoints(pointpattern)
result <- matrix(, n, m) # final results will go here
partresults <- list() # collect results for each group here
for(i in 1:m) {
  Yi <- Y[[i]]
  ni <- npoints(Yi)
  a <- matrix(, ni, m)
  a[,i] <- nndist(Yi)
  for(j in (1:m)[-i]) 
     a[,j] <- nncross(Yi, Y[[j]], what="d")
  partresults[[i]] <- a
}
split(result, marks(pointpattern)) <- partresults
Y更新:
nndist(X,by)
现在适用于
ppx
对象,在
spatstat
的开发版本中(版本1.63-3.037及更高版本)