library(ape)

set.seed(12345)
MO=rnorm(n = 150,mean = 3,sd = 0.5)
xy=expand.grid(x=seq(0,9),y=seq(0,14))
as.data.frame(MO)
##           MO
## 1   3.292764
## 2   3.354733
## 3   2.945348
## 4   2.773251
## 5   3.302944
## 6   2.091022
## 7   3.315049
## 8   2.861908
## 9   2.857920
## 10  2.540339
## 11  2.941876
## 12  3.908656
## 13  3.185314
## 14  3.260108
## 15  2.624734
## 16  3.408450
## 17  2.556821
## 18  2.834211
## 19  3.560356
## 20  3.149362
## 21  3.389811
## 22  3.727893
## 23  2.677836
## 24  2.223431
## 25  2.201145
## 26  3.902549
## 27  2.759176
## 28  3.310190
## 29  3.306062
## 30  2.918845
## 31  3.405937
## 32  4.098417
## 33  4.024595
## 34  3.816223
## 35  3.127136
## 36  3.245594
## 37  2.837957
## 38  2.168975
## 39  3.883867
## 40  3.012901
## 41  3.564255
## 42  1.809821
## 43  2.469867
## 44  3.468570
## 45  3.427226
## 46  3.730365
## 47  2.293451
## 48  3.283702
## 49  3.291594
## 50  2.346601
## 51  2.729807
## 52  3.973846
## 53  3.026795
## 54  3.175831
## 55  2.664512
## 56  3.138977
## 57  3.345586
## 58  3.411898
## 59  4.072533
## 60  1.826528
## 61  3.074796
## 62  2.328734
## 63  3.276652
## 64  3.794981
## 65  2.706560
## 66  2.083811
## 67  3.444070
## 68  3.796744
## 69  3.258427
## 70  2.352164
## 71  3.027308
## 72  2.607675
## 73  2.475324
## 74  4.165256
## 75  3.701353
## 76  3.471300
## 77  3.413129
## 78  2.594230
## 79  3.238124
## 80  3.510629
## 81  3.322692
## 82  3.521572
## 83  2.847815
## 84  4.238555
## 85  3.485610
## 86  3.933550
## 87  3.336021
## 88  2.846023
## 89  3.268262
## 90  3.412435
## 91  2.518049
## 92  2.572459
## 93  3.943473
## 94  2.804090
## 95  2.509684
## 96  3.343666
## 97  2.747478
## 98  4.078860
## 99  2.700101
## 100 2.652727
## 101 3.111963
## 102 2.421888
## 103 3.211209
## 104 2.337622
## 105 3.070542
## 106 2.731976
## 107 2.844197
## 108 3.778055
## 109 2.775983
## 110 3.160562
## 111 2.384914
## 112 2.337971
## 113 3.630621
## 114 3.659616
## 115 2.959623
## 116 2.747455
## 117 2.973923
## 118 3.314430
## 119 4.090001
## 120 2.965491
## 121 3.772432
## 122 3.660726
## 123 3.161076
## 124 3.765478
## 125 2.789380
## 126 2.420589
## 127 2.077316
## 128 3.578663
## 129 1.938225
## 130 2.401984
## 131 3.821096
## 132 3.441827
## 133 3.262438
## 134 2.407670
## 135 4.327894
## 136 2.476043
## 137 2.494439
## 138 3.334461
## 139 3.064589
## 140 2.788712
## 141 2.429868
## 142 2.353142
## 143 2.702651
## 144 2.249593
## 145 3.007928
## 146 3.270085
## 147 2.226354
## 148 3.424826
## 149 3.448007
## 150 3.069345
plot(xy,col=MO,pch=19)

xymatrix<- as.matrix(dist(cbind(xy$x, xy$y)))
xymatrix.inv <- 1/xymatrix
diag(xymatrix.inv) <- 0
xymatrix.inv[1:10, 1:10]
##            1         2         3         4         5         6         7
## 1  0.0000000 1.0000000 0.5000000 0.3333333 0.2500000 0.2000000 0.1666667
## 2  1.0000000 0.0000000 1.0000000 0.5000000 0.3333333 0.2500000 0.2000000
## 3  0.5000000 1.0000000 0.0000000 1.0000000 0.5000000 0.3333333 0.2500000
## 4  0.3333333 0.5000000 1.0000000 0.0000000 1.0000000 0.5000000 0.3333333
## 5  0.2500000 0.3333333 0.5000000 1.0000000 0.0000000 1.0000000 0.5000000
## 6  0.2000000 0.2500000 0.3333333 0.5000000 1.0000000 0.0000000 1.0000000
## 7  0.1666667 0.2000000 0.2500000 0.3333333 0.5000000 1.0000000 0.0000000
## 8  0.1428571 0.1666667 0.2000000 0.2500000 0.3333333 0.5000000 1.0000000
## 9  0.1250000 0.1428571 0.1666667 0.2000000 0.2500000 0.3333333 0.5000000
## 10 0.1111111 0.1250000 0.1428571 0.1666667 0.2000000 0.2500000 0.3333333
##            8         9        10
## 1  0.1428571 0.1250000 0.1111111
## 2  0.1666667 0.1428571 0.1250000
## 3  0.2000000 0.1666667 0.1428571
## 4  0.2500000 0.2000000 0.1666667
## 5  0.3333333 0.2500000 0.2000000
## 6  0.5000000 0.3333333 0.2500000
## 7  1.0000000 0.5000000 0.3333333
## 8  0.0000000 1.0000000 0.5000000
## 9  1.0000000 0.0000000 1.0000000
## 10 0.5000000 1.0000000 0.0000000
Moran.I(MO, xymatrix.inv)
## $observed
## [1] -0.009650003
## 
## $expected
## [1] -0.006711409
## 
## $sd
## [1] 0.007694112
## 
## $p.value
## [1] 0.7025151
library(ape)
library(readxl)


CE_table <- read_excel("BD_MORAN.xlsx")

CE_dist <- as.matrix(dist(cbind(CE_table$X_WGS84[1:1000], CE_table$Y_WGS84[1:1000])))
CE_dist_inv <- 1/CE_dist
diag(CE_dist_inv) <- 0

Moran_075 <- Moran.I(CE_table$CEa_075[1:1000], CE_dist_inv)
Moran_150 <- Moran.I(CE_table$CEa_150[1:1000], CE_dist_inv)

Moran_075
## $observed
## [1] 0.5346911
## 
## $expected
## [1] -0.001001001
## 
## $sd
## [1] 0.006384246
## 
## $p.value
## [1] 0
Moran_150
## $observed
## [1] 0.4800138
## 
## $expected
## [1] -0.001001001
## 
## $sd
## [1] 0.006381354
## 
## $p.value
## [1] 0