有更好的方法来做到这一点。但是,如果您的 R 技能很少:您可以将第一个矩阵矩阵子集为子矩阵(例如,每个子矩阵的大小是总数的 1/10,针对第二个矩阵运行每个子矩阵,然后将结果组合为最后。我遇到了同样的问题,这就是我想出的。
getwd()
setwd("C:/_R")
library(maptools)
require(rgdal)
# Read SHAPEFILE.shp from the current working directory (".")
points2010 <- readOGR(dsn = "C:/_R", layer = "points_2010")
metro <- readOGR(dsn = "C:/_R", layer = "selection")
plot(points2010)
plot(metro, axes=TRUE)
head(points2010)
library("rgeos")
ohio.metro <- spTransform(points2010, CRS("+proj=longlat +datum=WGS84"))
plot(ohio.metro, axes=TRUE)
ohio.metro$COUNTYFP10<-substr(ohio.metro$id,3,5)
countylist<-unique(ohio.metro$COUNTYFP10)
# "035" "055" "085" "093" "103"
ohio.county035 <- subset( ohio.metro, COUNTYFP10 == "035" )
ohio.county055 <- subset( ohio.metro, COUNTYFP10 == "055" )
ohio.county085 <- subset( ohio.metro, COUNTYFP10 == "085" )
ohio.county093 <- subset( ohio.metro, COUNTYFP10 == "093" )
ohio.county103 <- subset( ohio.metro, COUNTYFP10 == "103" )
plot(ohio.metro$COUNTYFP10) #counties in the metro
plot(ohio.county035$COUNTYFP10) # counties inthe county
plot(ohio.metro) #counties in the metro
plot(ohio.county035) # counties inthe county
#get the coordinats for the Great circle command
ohio.metro.coords <- ohio.metro@coords
ohio.county035.coords <- ohio.county035@coords
ohio.county055.coords <- ohio.county055@coords
ohio.county085.coords <- ohio.county085@coords
ohio.county093.coords <- ohio.county093@coords
ohio.county103.coords <- ohio.county103@coords
library(fields)
great_circle<-rdist.earth(ohio.county035.coords,ohio.metro.coords,miles=TRUE, R=NULL) #works
great_circle<-rdist.earth(ohio.county055.coords,ohio.metro.coords,miles=TRUE, R=NULL) #works
great_circle<-rdist.earth(ohio.county085.coords,ohio.metro.coords,miles=TRUE, R=NULL) #works
great_circle<-rdist.earth(ohio.county093.coords,ohio.metro.coords,miles=TRUE, R=NULL) #works
great_circle<-rdist.earth(ohio.county103.coords,ohio.metro.coords,miles=TRUE, R=NULL) #works
library(matrixStats)
bm<-rowMedians(great_circle)
head(bm)