Расчет площади клеток вороной по времени в R - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь определить область точек вороной точки по времени. В качестве примера у меня будет 10 точек, которые перемещаются в области, как показано x и y, и каждую секунду их положение меняется, я в идеале хотел бы также добавить данные во фрейм данных.

пример набора данных

   time ID group          x           y
1     1  1     0 28.8554948 22.86062624
2     1  2     0  9.4312357  5.27599370
3     1  3     0 27.3113332 27.09634821
4     1  4     0  4.6193213 16.01022288
5     1  5     0 25.8617119 20.16558756
6     1  1     1 33.6530158 23.75166888
7     1  2     1 12.2341101  3.62926925
8     1  3     1  9.5619524 24.14383888
9     1  4     1  3.4181743 12.15189151
10    1  5     1 18.5343594 11.47733778
11    2  1     0 39.6441736 15.33997914
12    2  2     0 27.0514581  0.01297022
13    2  3     0 24.2570589 24.97551277
14    2  4     0  9.7487883 20.35647215
15    2  5     0  5.8891486  5.73949480
16    2  1     1 12.3068353 21.05215570
17    2  2     1 23.9474039 23.12259092
18    2  3     1  1.9877855  0.35812507
19    2  4     1  5.6428109 10.54775290
20    2  5     1 23.1807251 25.67674280
21    3  1     0 20.3794007 14.67732524
22    3  2     0 40.1697906  7.08210676
23    3  3     0 24.7078656  4.75863272
24    3  4     0 37.2356573  1.53532999
25    3  5     0  1.7329567 20.60363936
26    3  1     1 16.0402923  0.12031647
27    3  2     1  8.8020244  0.66411068
28    3  3     1  3.3827121 23.83870263
29    3  4     1 39.3006142 14.11694483
30    3  5     1 25.1898969 18.06613287
31    4  1     0 38.7190039  8.64362926
32    4  2     0 35.1425483 16.56187552
33    4  3     0  0.3365735  6.72706968
34    4  4     0 41.3876329 27.49034725
35    4  5     0 25.7139132 26.77245463
36    4  1     1  5.7941731 25.13917211
37    4  2     1 36.8241326  9.11848145
38    4  3     1  6.5164597 11.21829771
39    4  4     1 37.5855722 11.70369151
40    4  5     1 10.6119342 17.47858228
41    5  1     0 30.6994266  3.40411287
42    5  2     0 21.5079571 27.14161562
43    5  3     0  1.8966082  3.30486653
44    5  4     0 26.3202706  6.51448199
45    5  5     0 18.6151207  8.35861197
46    5  1     1 39.1749579  1.22611131
47    5  2     1 39.2039045 12.04512658
48    5  3     1 26.3472226 21.71368996
49    5  4     1 17.1631377 13.25027121
50    5  5     1 25.1563733  8.04649512

Я пытался использовать dplyr, чтобы попытаться решить эту проблему без реального успеха. Я ценю, что могут быть другие способы сделать это, например, для циклов

Вот код, который я пытался до сих пор, хотя предположим, что он пока не работает

#create tesselation
tess <- deldir(df$x, df$y, rw = c(0,42,0,28))

    #plot tesselation
    plot.deldir(tess)

    #get area of each dirichlet tile column
    tess$summary

    #attemot to group by time
    df = df %>%  
      group_by(time) %>% 
      deldir(df$x, df$y, rw = c(0,42,0,28))
...