Your question is interesting; for Moran's I in its raw form does not require a distance matrix. What it requires is a contiguity matrix (which observations are neighbors?) and weights matrix (giving a quantification to said neighborhood).

The inverse distance weights calculated using `dist()`

is a special case of this - legit, but definitely not a required case of weights, and a distance matrix of a longish object can get out of hand quickly.

What I suggest is:

- calculating the weights matrices and Moran's I within framework of
`{spdep}`

instead of`{ape}`

- spdep has a special object for weight matrices, and stores them in a sparse form as a list. This can get handy when working with largish datasets - calculating the neighbors using either KNN (each point has exactly N neighbors) or distance based neighbors (all points within X distance units from a point are its neighbors); both of these can be used with house price data and should handle 1,500 observations with a relative ease

I have written a blog piece about creating the contiguity / weights matrices a while back; you may find it interesting as it includes code: Spatial Neighborhoods ยท Jindra Lacko