kopczewska (pliki z kodami) Rozdział 03 Macierze wag


#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#>>>>>>>>>>>>>>>>>>>>> ROZDZIAŁ 3 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#>>>>>>>>>>>>>>>>>>>>>MACIERZE WAG>>>>>>>>>>>>>>>>>>>>>>>>>>>
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

# 3.1
# Współrzędne środków regionów
euro.shape1<-read.shape("c:/euro/euro.shp",dbf.data=TRUE,verbose=TRUE)
coord<-get.Pcent(euro.shape1)
is.matrix(coord) #sprawdzenie, czy obiekt jest macierzą
colnames(coord)<-c("xcoord","ycoord") # nadawanie nazw wierszom

#tworzenie obiektu współrzędnych z obiektu euro.dane
coord<-as.matrix(euro.dane[,7:8])
is.matrix(coords)

#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# 3.2

######################
###### Przykład 6 #######
######################

# ładowanie pakietów
library(shapefiles)
library(maptools)
library(spdep)

# wczytywanie danych liczbowych
euro.dane<-read.csv("c:/euro/euro.csv",header=T, sep=";",dec="." )

# ładowanie plików typu shapefile
euro.shape<-read.shapefile("c:/euro/euro")
euro.poly<-shape2poly(euro.shape)
euro.nb<-poly2nb(euro.poly)

# tworzenie obiektu klasy listw
euro.W.listw<-nb2listw(euro.nb, style="W") #macierz wag standaryzowana pierwszego rzędu
euro.B.listw<-nb2listw(euro.nb, style="B") # binarna macierz wag

######################

#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# 3.3

# macierz k=5 najbliższych sąsiadów
euro.knn<- knearneigh(coord, k=10) # powstaje obiekt klasy knn

# rysunek k najbliższych sąsiadów
plot.polylist(euro.poly)
plot(knn2nb(euro.knn), coord, add=TRUE)
title(main="K najbliższych sąsiadów, k = 5")

# macierz klasy nb dla k najbliższych sąsiadów
euro.k.nb<- knn2nb(euro.knn)

# sprawdzanie symetryczności macierzy
print(is.symmetric.nb(euro.k.nb))
euro.k.sym.nb<-make.sym.nb(euro.k.nb)
print(is.symmetric.nb(euro.k.sym.nb))

# tworzenie obiektu klasy listw
euro.k.sym.listw<-nb2listw(euro.k.sym.nb)

summary(euro.k.sym.nb)

#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# 3.4

# macierz sąsiadów w promieniu 200 km
maxidist200<-900.90*200 #900.90*200 km
conti200<- dnearneigh(coord, 0, maxidist200, row.names = rownames(euro.dane), lonlat = FALSE)
plot(euro.poly, forcefill=FALSE)
plot(conti200, coord, add=TRUE)
title(main="sąsiedzi w promieniu 200 km")

# macierz sąsiadów
wszystkich obszarów
all.linked<-max(unlist(nbdists(euro.nb, coord))) # znajdowanie największej odległości między obszarami
conti<-dnearneigh(coord, 0, all.linked, row.names = rownames(euro.dane), lonlat = FALSE)
plot(euro.poly, forcefill=FALSE)
plot(conti, coord, add=TRUE)

# tworzenie obiektu klasy listw
euro.d.listw<-nb2listw(conti200)

#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# 3.5

# macierz klasy nb według kryterium odległości
dist <- nbdists(euro.nb, coord) # powstaje obiekt klasy nbdist, który łatwo przerobić na klasę nb
dist1 <- lapply(dist, function(x) 1/x) # obiekt klasy nb
# macierz klasy listw według kryterium odległości
euro.dist.listw<-nb2listw(euro.nb, glist=dist1)

#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# 3.6
# Podsumowywanie macierzy wag

summary(conti200) # macierz klasy nb

conti200.listw<-nb2listw(conti200)
summary(unlist(conti200.listw$weights))

conti200.mat<-nb2mat(conti200)
summary(conti200.mat)

table(card(conti200))

print(conti200.mat)

euro.listw$weights

######################
###### Przykład 7 #######
######################
# sąsiedzi w promieniu 100 km (90090 pkt)
conti100<- dnearneigh(coord, 0, 90090, row.names = rownames(euro.dane), lonlat = FALSE)
summary(conti100)
plot(euro.poly, forcefill=FALSE)
plot(conti100, coords, add=TRUE)

######################

#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# 3.7
# Interaktywna edycja listy sąsiadów

# tworzenie macierzy współrzędnych środków regionów
coords<-as.matrix(euro.dane[,7:8])
# uruchomienie interfejsu edycji
edit.nb(euro.nb, coords, polys=euro.poly)



Wyszukiwarka