У меня есть два типа точек (отметки = 1 или 2), и я хочу использовать пакет spatstat для R, чтобы выполнить анализ localkcross. Результат функции нарисован множеством кривых (каждая из которых представляет точку, помеченную 1). Как можноЯ использую цикл, чтобы выбрать один и сделать конверт для каждой вырезки?
Я пытался написать некоторый код, но результаты были неудовлетворительными.
library(spatstat)
library(maptools)
library(gpclib)
library(sp)
# Load points
points <- read.csv("E:/test_1.csv",sep = ",", header = TRUE, fileEncoding = "utf-8")
#Ripley k
localk <- function(x,y,codes,place) {
p <- ppp(x, y, c(4000, 6000), c(-4500, -3000),marks = factor(codes))
#lks <- localKcross(p,i="1",j="2",rmax = 100,correction='Ripley')
kmult <- envelope(p, fun=localKcross, nsim=10, i="1", j="2",r=s,correction='Ripley', simulate=NULL)
plot(kmult)
# setwd("E://kpic")
# for(i in 1:900){
# idx = sprintf("%03d", i)
# pic <- paste("iso",idx," ~ r", sep = "")
# picname <- paste("iso",idx," ~ r",".png", sep = "")
# png(file=picname, bg="transparent")
# plot(lk,pic)
#
#I don't know how to select one carve to do envelope
# kmult <- envelope(p, fun=localKcross, nsim=100, i="1", j="2",correction='Ripley', simulate=expression(rlabel(p)))
# plot(kmult)
#
# dev.off()
# }
return(kmult)
}
res <- localk(points$X, points$Y,points$type,points$name)
Я ожидаю, что каждая точка, помеченная 1, сделает кривую ripley'k и ее огибающую и сохранит ее визображение.