Dear list,
I’m an undergraduate research assistant trying to create a single function
that can calculate Moran’s I using the “ape” package. The example that I
will use comes from online data about ozone levels. Here are the commands
that I have been using:
> library(ape)
>
ozone<-read.table("http://www.ats.ucla.edu/stat/r/faq/ozone.csv",
sep=",", header=T)
> head(ozone, n=10)
Station Av8top Lat Lon county
1 60 7.225806 34.13583 -117.9236 1
2 69 5.899194 34.17611 -118.3153 1
3 72 4.052885 33.82361 -118.1875 1
4 74 7.181452 34.19944 -118.5347 1
5 75 6.076613 34.06694 -117.7514 2
6 84 3.157258 33.92917 -118.2097 2
7 85 5.201613 34.01500 -118.0597 2
8 87 4.717742 34.06722 -118.2264 2
9 88 6.532258 34.08333 -118.1069 2
10 89 7.540323 34.38750 -118.5347 2
>attach(ozone)
> Moran<- function(x)
+ {
+ distmatrix<- as.matrix(dist(cbind(Lon, Lat)))
+ invdistmatrix<- 1/distmatrix
+ diag(invdistmatrix)<-0
+ Moran.I(Av8top, invdistmatrix)
+ print(Moran.I)
+ }
> Moran.I(ozone)
I either receive an error saying that the matrix is not weighted, or I
receive a significant amount of output that does not include a calculation
for Moran’s I. Do you have any suggestions on how to correctly create a
single function that calculates Moran’s I?
My ultimate goal is to run this function as a loop. I want to create a loop
that produces Moran’s I values for subsets of a very large database.
Specifically, I have points (block centroids) with population
characteristics. These points are nested within approximately 35,000 zip
codes. I want to create Moran’s I across blocks for each of the ~35,000 and
have the output stored in a new file that contains the zip code number and
Moran’s I values. In the example of the ozone data I show above, I would
create a loop that produces Moran’s I values for county 1 and county 2 and
then have the output stored in a new file with two records (one for each
county) and values for each county and the corresponding Moran’s I values.
Do you have any advice on creating this loop? Any help would be greatly
appreciated!
[[alternative HTML version deleted]]