2017-06-01 36 views
0

我有以下DF:的R - 點的維諾圖的不同塊(多邊形)的值的總和

name x  y 
    A  -47 134 
    B  -11 311 
    C  49 100 
    D  -40 138 
    E  -33 233 
    F  30 134 

我使用x &ÿCOORDS以產生沃羅努瓦剖分由封閉矩形:

library(spatstat) 
library(deldir) 

rectangle <- owin(c(-100,100),c(0,400)) 
points <- ppp(x=df$x,y=df$y, window = rectangle) 
voronoi <- dirichlet(points) 
plot(voronoi) 

Voronoi diagram

現在說我有另一個DF,DF2:

x  y  value 
-99  2  0.24 
    -5  32  0.24 
    51  242 0.08 
    26  54  0.25 

我知道我可以使用spatstat & quadratcount我的Voronoi鑲嵌的每個多邊形算分的總和(以DF2),但如果我要算值的總和在每個多邊形,而不是什麼?

給我這樣的:

name x  y  sum_of_value 
    A  -47 134 0.24 
    B  -11 311 0.32 
    C  49 100 0 
    D  -40 138 0 
    E  -33 233 0 
    F  30 134 0.25 

回答

1


我不明白你的預期輸出。使用by.ppp我可以生產 下面的輸出可能是你想要的嗎?

library(spatstat) 
library(deldir) 
df <- structure(list(name = c("A", "B", "C", "D", "E", "F"), 
        x = c(-47L, -11L, 49L, -40L, -33L, 30L), 
        y = c(134L, 311L, 100L, 138L, 233L, 134L)), 
       .Names = c("name", "x", "y"), 
       row.names = 1:6, 
       class = "data.frame") 
rectangle <- owin(c(-100,100),c(0,400)) 
points <- ppp(x=df$x,y=df$y, window = rectangle) 
voronoi <- dirichlet(points) 
plot(voronoi) 
text(df$x, df$y, labels = df$name) 

df2 <- structure(list(x = c(-99L, -5L, 51L, 26L), 
         y = c(2L, 32L, 242L, 54L), 
         value = c(0.24, 0.24, 0.08, 0.25)), 
       .Names = c("x", "y", "value"), 
       row.names = 1:4, 
       class = "data.frame") 

points2 <- as.ppp(df2, W = rectangle) 
text(df2$x, df2$y, labels = df2$value) 

values2 <- by(points2, voronoi, marks) 
df$values <- sapply(values2, sum) 

df 
#> name x y values 
#> 1 A -47 134 0.24 
#> 2 B -11 311 0.00 
#> 3 C 49 100 0.49 
#> 4 D -40 138 0.00 
#> 5 E -33 233 0.08 
#> 6 F 30 134 0.00