In his book Gbase D.E. Knuth provided a description of neighboring relation contiguous-usa.dat. See also the corresponding MathWorld page.
Here is a program in R to convert the data into Pajek net
file.
> setwd("C:/Users/batagelj/Documents/books/BM2/chapters/cluster/nets/USA") > T <- read.table("contiguous-usa.dat",header=FALSE,stringsAsFactors=FALSE) > s <- union(T$V1,T$V2) > length(s) [1] 49 > b <- factor(T$V1,lev=s) > e <- factor(T$V2,lev=s) > n <- length(s) > net <- file("USA.net","w"); cat("*vertices ",n,"\n",file=net) > for(v in 1:n) cat(v,' "',s[v],'"\n',sep='',file=net) > cat("*edges\n",file=net) > for(a in 1:length(b)) cat(b[a]," ",e[a]," 1\n",sep='',file=net) > close(net)
C:\Users\batagelj\Documents\books\BM2\chapters\cluster\nets\USA\data
https://datausa.io/profile/geo/united-states/
2016
> setwd("C:/Users/batagelj/Documents/books/BM2/chapters/cluster/nets/USA") > US <- read.table("./data/state_table.csv",sep=",",header=TRUE,stringsAsFactors=FALSE) > name <- US$name > hc <- read.table("./data/US_Homicide+Crime.csv",sep=",",header=TRUE,stringsAsFactors=FALSE) > head(hc) year geo_name geo violent_crime 1 2017 Alabama 04000US01 436.03 2 2017 Alaska 04000US02 626.51 3 2017 Arizona 04000US04 414.95 4 2017 Arkansas 04000US05 469.85 5 2017 California 04000US06 407.01 6 2017 Colorado 04000US08 308.65 > ch <- read.table("./data/US_Homicide+CrimeB.csv",sep=",",header=TRUE,stringsAsFactors=FALSE) > head(ch) year geo_name geo homicide_rate 1 2017 Alabama 04000US01 8.5 2 2017 Alaska 04000US02 5.6 3 2017 Arizona 04000US04 5.7 4 2017 Arkansas 04000US05 7.2 5 2017 California 04000US06 5.0 6 2017 Colorado 04000US08 3.6 > hb <- read.table("./data/US_HarmfulBehaviors.csv",sep=",",header=TRUE,stringsAsFactors=FALSE) > head(hb) year geo_name geo excessive_drinking 1 2017 Alabama 04000US01 0.130 2 2017 Alaska 04000US02 0.221 3 2017 Arizona 04000US04 0.160 4 2017 Arkansas 04000US05 0.153 5 2017 California 04000US06 0.180 6 2017 Colorado 04000US08 0.191 > bh <- read.table("./data/US_HarmfulBehaviorsB.csv",sep=",",header=TRUE,stringsAsFactors=FALSE) > head(bh) year geo_name geo adult_smoking 1 2017 Alabama 04000US01 0.214 2 2017 Alaska 04000US02 0.191 3 2017 Arizona 04000US04 0.140 4 2017 Arkansas 04000US05 0.249 5 2017 California 04000US06 0.117 6 2017 Colorado 04000US08 0.156 > di <- read.table("./data/US_Diseases.csv",sep=",",header=TRUE,stringsAsFactors=FALSE) > head(di) year geo_name geo diabetes 1 2017 Alabama 04000US01 0.137 2 2017 Alaska 04000US02 0.069 3 2017 Arizona 04000US04 0.096 4 2017 Arkansas 04000US05 0.124 5 2017 California 04000US06 0.087 6 2017 Colorado 04000US08 0.062 > hs <- read.table("./data/US_PreventativeWHS.csv",sep=",",header=TRUE,stringsAsFactors=FALSE) > head(hs) year geo_name geo number_of_females_enrolled_67_69_total 1 2010 Alabama 04000US01 39019 2 2012 Alabama 04000US01 42535 3 2011 Alabama 04000US01 42267 4 2013 Alabama 04000US01 44502 5 2014 Alabama 04000US01 48751 6 2012 Alaska 04000US02 5234 > cc <- read.table("./data/US_CommonConditions.csv",sep=",",header=TRUE,stringsAsFactors=FALSE) > head(cc) year geo_name geo cohort_name cohort patients_in_cohort 1 2012 Alabama 04000US01 Congestive Heart Failure CHF 4300 2 2014 Alabama 04000US01 Congestive Heart Failure CHF 4337 3 2013 Alabama 04000US01 Congestive Heart Failure CHF 4369 4 2010 Alabama 04000US01 Congestive Heart Failure CHF 4843 5 2011 Alabama 04000US01 Congestive Heart Failure CHF 4679 6 2010 Alaska 04000US02 Congestive Heart Failure CHF 289 > mc <- read.table("./data/US_MedicareEnrollment.csv",sep=",",header=TRUE,stringsAsFactors=FALSE) > head(mc) year geo_name geo total_reimbursements_b 1 2014 Montana 04000US30 7457 2 2014 West Virginia 04000US54 9826 3 2014 Pennsylvania 04000US42 9864 4 2014 Texas 04000US48 10941 5 2014 South Carolina 04000US45 9310 6 2014 Vermont 04000US50 7656 > il <- read.table("./data/US_IncomeByLocation.csv",sep=",",header=TRUE,stringsAsFactors=FALSE) > head(il) year geo_name geo income 1 2013 Alabama 04000US01 43253 2 2013 Alaska 04000US02 70760 3 2013 Arizona 04000US04 49774 4 2013 Arkansas 04000US05 40768 5 2013 California 04000US06 61094 6 2013 Colorado 04000US08 58433 > ou <- read.table("./data/US_OpioidUse.csv",sep=",",header=TRUE,stringsAsFactors=FALSE) > head(ou) year geo_name geo opioid_overdose_deathrate_ageadjusted 1 2010 Alabama 04000US01 4.1 2 2003 Alabama 04000US01 1.1 3 2000 Alabama 04000US01 1.0 4 2013 Alabama 04000US01 3.5 5 1999 Alabama 04000US01 0.8 6 2015 Alabama 04000US01 6.1 > opioid <- ou[ou$year==2016,] > dim(opioid) [1] 51 4 > income <- il[il$year==2016,] > dim(income) [1] 52 4 > geoName <- income$geo_name > p <- match(name,geoName) > p [1] 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [32] 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 NA > q <- match(geoName,name) > q [1] 1 2 3 4 5 6 7 8 NA 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [32] 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 NA > j <- which(is.na(q)) > j [1] 9 52 > geoName[j] [1] "District of Columbia" "Puerto Rico" ---------------------------- > table(hc$year) 2015 2016 2017 50 50 50 > violent <- hc[hc$year==2017,] > vName <- violent$geo_name > vName [1] "Alabama" "Alaska" "Arizona" "Arkansas" "California" [6] "Colorado" "Connecticut" "Delaware" "Florida" "Georgia" [11] "Hawaii" "Idaho" "Illinois" "Indiana" "Iowa" [16] "Kansas" "Kentucky" "Louisiana" "Maine" "Maryland" [21] "Massachusetts" "Michigan" "Minnesota" "Mississippi" "Missouri" [26] "Montana" "Nebraska" "Nevada" "New Hampshire" "New Jersey" [31] "New Mexico" "New York" "North Carolina" "North Dakota" "Ohio" [36] "Oklahoma" "Oregon" "Pennsylvania" "Rhode Island" "South Carolina" [41] "South Dakota" "Tennessee" "Texas" "Utah" "Vermont" [46] "Virginia" "Washington" "West Virginia" "Wisconsin" "Wyoming" > table(ch$year) 2015 2016 2017 50 50 50 > crime <- ch[ch$year==2017,] > tName <- crime$geo_name > p <- match(vName,tName) > p [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [32] 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 > crime <- crime$homicide_rate > violent <- violent$violent_crime > D <- data.frame(state=vName,crime,violent) > head(D) state crime violent 1 Alabama 8.5 436.03 2 Alaska 5.6 626.51 3 Arizona 5.7 414.95 4 Arkansas 7.2 469.85 5 California 5.0 407.01 6 Colorado 3.6 308.65 > table(hb$year) 2015 2016 2017 50 50 50 > table(bh$year) 2015 2016 2017 50 50 50 > table(di$year) 2015 2016 2017 50 50 50 > table(hs$year) 2010 2011 2012 2013 2014 51 51 51 51 51 > table(il$year) 2013 2014 2015 2016 52 52 52 52 > table(ou$year) 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 > > crime <- as.numeric(ch[ch$year==2016,]$homicide_rate) > violent <- as.numeric(hc[hc$year==2016,]$violent_crime) > smoking <- as.numeric(bh[bh$year==2016,]$adult_smoking) > drinking <- as.numeric(hb[hb$year==2016,]$excessive_drinking) > diabetes <- as.numeric(di[di$year==2016,]$diabetes) > D <- data.frame(state=vName,crime,violent,smoking,drinking,diabetes) > head(D) > opium <- ou[ou$year==2016,] > opioid <- as.numeric(opium$opioid_overdose_deathrate_ageadjusted) > incomeL <- il[il$year==2016,] > income <- incomeL$income > oName <- opium$geo_name > (q <- match(oName,tName)) [1] 1 2 3 4 5 6 7 8 NA 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [32] 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 > opioid <- opioid[-9] > iName <- incomeL$geo_name > income <- as.numeric(incomeL$income) > (q <- match(iName,tName)) [1] 1 2 3 4 5 6 7 8 NA 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [32] 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 NA > income <- income[-c(9,52)] > D$opioid <- opioid > D$income <- income > head(D) state crime violent smoking drinking diabetes opioid income 1 Alabama 9.0 417.97 0.211 0.133 0.124 7.5 44758 2 Alaska 5.3 614.86 0.199 0.217 0.077 12.5 74444 3 Arizona 6.7 416.20 0.165 0.166 0.096 11.4 51340 4 Arkansas 7.7 484.46 0.247 0.143 0.118 5.9 42336 5 California 5.3 424.53 0.128 0.172 0.099 4.9 63783 6 Colorado 3.6 317.51 0.157 0.190 0.068 9.5 62520 > > pairs(D[,2:8]) > write.table(D,file="US1016.csv",sep=";")
> setwd("C:/Users/batagelj/Documents/books/BM2/chapters/cluster/nets/USA") > D <- read.table("US1016.csv",sep=";",head=TRUE) > head(D) state crime violent smoking drinking diabetes opioid income 1 Alabama 9.0 417.97 0.211 0.133 0.124 7.5 44758 2 Alaska 5.3 614.86 0.199 0.217 0.077 12.5 74444 3 Arizona 6.7 416.20 0.165 0.166 0.096 11.4 51340 4 Arkansas 7.7 484.46 0.247 0.143 0.118 5.9 42336 5 California 5.3 424.53 0.128 0.172 0.099 4.9 63783 6 Colorado 3.6 317.51 0.157 0.190 0.068 9.5 62520 > S <- read.table("./data/statelatlong.csv",sep=",",head=TRUE,stringsAsFactors=FALSE) > head(S) State Latitude Longitude City 1 AL 32.60101 -86.68074 Alabama 2 AK 61.30250 -158.77502 Alaska 3 AZ 34.16822 -111.93091 Arizona 4 AR 34.75193 -92.13138 Arkansas 5 CA 37.27187 -119.27042 California 6 CO 38.99793 -105.55057 Colorado > r <- match(D$state,S$City) > r [1] 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [30] 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 > D$st <- S$State[r] > D$lat <- S$Latitude[r] > D$lon <- S$Longitude[r] > head(D) state crime violent smoking drinking diabetes opioid income st lat lon 1 Alabama 9.0 417.97 0.211 0.133 0.124 7.5 44758 AL 32.60101 -86.68074 2 Alaska 5.3 614.86 0.199 0.217 0.077 12.5 74444 AK 61.30250 -158.77502 3 Arizona 6.7 416.20 0.165 0.166 0.096 11.4 51340 AZ 34.16822 -111.93091 4 Arkansas 7.7 484.46 0.247 0.143 0.118 5.9 42336 AR 34.75193 -92.13138 5 California 5.3 424.53 0.128 0.172 0.099 4.9 63783 CA 37.27187 -119.27042 6 Colorado 3.6 317.51 0.157 0.190 0.068 9.5 62520 CO 38.99793 -105.55057 > T <- read.table("./data/state_table.csv",sep=",",head=TRUE,stringsAsFactors=FALSE) > head(T) id name abbreviation country type sort status occupied notes fips_state 1 1 Alabama AL USA state 10 current occupied NA 1 2 2 Alaska AK USA state 10 current occupied NA 2 3 3 Arizona AZ USA state 10 current occupied NA 4 4 4 Arkansas AR USA state 10 current occupied NA 5 5 5 California CA USA state 10 current occupied NA 6 6 6 Colorado CO USA state 10 current occupied NA 8 assoc_press standard_federal_region census_region census_region_name census_division 1 Ala. IV 3 South 6 2 Alaska X 4 West 9 3 Ariz. IX 4 West 8 4 Ark. VI 3 South 7 5 Calif. IX 4 West 9 6 Colo. VIII 4 West 8 census_division_name circuit_court 1 East South Central 11 2 Pacific 9 3 Mountain 9 4 West South Central 8 5 Pacific 9 6 Mountain 10 > t <- match(D$st,T$abbreviation) > t [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 [30] 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 > D$cenReg <- T$census_region[t] > D$cenRegN <- T$census_region_name[t] > D$cenDiv <- T$census_division[t] > D$cenDivN <- T$census_division_name[t] > D$fedReg <- T$standard_federal_region[t] > D$circCourt <- T$circuit_court[t] > head(D) state crime violent smoking drinking diabetes opioid income st lat lon 1 Alabama 9.0 417.97 0.211 0.133 0.124 7.5 44758 AL 32.60101 -86.68074 2 Alaska 5.3 614.86 0.199 0.217 0.077 12.5 74444 AK 61.30250 -158.77502 3 Arizona 6.7 416.20 0.165 0.166 0.096 11.4 51340 AZ 34.16822 -111.93091 4 Arkansas 7.7 484.46 0.247 0.143 0.118 5.9 42336 AR 34.75193 -92.13138 5 California 5.3 424.53 0.128 0.172 0.099 4.9 63783 CA 37.27187 -119.27042 6 Colorado 3.6 317.51 0.157 0.190 0.068 9.5 62520 CO 38.99793 -105.55057 cenReg cenRegN cenDiv cenDivN fedReg circCourt 1 3 South 6 East South Central IV 11 2 4 West 9 Pacific X 9 3 4 West 8 Mountain IX 9 4 3 South 7 West South Central VI 8 5 4 West 9 Pacific IX 9 6 4 West 8 Mountain VIII 10 > o <- c("st","state","cenReg","cenRegN","cenDiv","cenDivN","fedReg","circCourt", + "lat","lon","crime","violent","smoking","drinking","diabetes","opioid","income") > E <- D[o] > head(E) st state cenReg cenRegN cenDiv cenDivN fedReg circCourt lat 1 AL Alabama 3 South 6 East South Central IV 11 32.60101 2 AK Alaska 4 West 9 Pacific X 9 61.30250 3 AZ Arizona 4 West 8 Mountain IX 9 34.16822 4 AR Arkansas 3 South 7 West South Central VI 8 34.75193 5 CA California 4 West 9 Pacific IX 9 37.27187 6 CO Colorado 4 West 8 Mountain VIII 10 38.99793 lon crime violent smoking drinking diabetes opioid income 1 -86.68074 9.0 417.97 0.211 0.133 0.124 7.5 44758 2 -158.77502 5.3 614.86 0.199 0.217 0.077 12.5 74444 3 -111.93091 6.7 416.20 0.165 0.166 0.096 11.4 51340 4 -92.13138 7.7 484.46 0.247 0.143 0.118 5.9 42336 5 -119.27042 5.3 424.53 0.128 0.172 0.099 4.9 63783 6 -105.55057 3.6 317.51 0.157 0.190 0.068 9.5 62520 > write.table(E,file="US1016b.csv",sep=";") > vars <- c("crime","violent","smoking","drinking","diabetes","opioid","income") > V <- E[vars] > rownames(V) <- E$st > head(V) crime violent smoking drinking diabetes opioid income AL 9.0 417.97 0.211 0.133 0.124 7.5 44758 AK 5.3 614.86 0.199 0.217 0.077 12.5 74444 AZ 6.7 416.20 0.165 0.166 0.096 11.4 51340 AR 7.7 484.46 0.247 0.143 0.118 5.9 42336 CA 5.3 424.53 0.128 0.172 0.099 4.9 63783 CO 3.6 317.51 0.157 0.190 0.068 9.5 62520
> setwd("C:/Users/batagelj/Documents/books/BM2/chapters/cluster/nets/USA") > E <- read.table("US1016b.csv",sep=";",head=TRUE) > vars <- c("crime","violent","smoking","drinking","diabetes","opioid","income") > V <- E[vars] > rownames(V) <- E$st > head(V) crime violent smoking drinking diabetes opioid income AL 9.0 417.97 0.211 0.133 0.124 7.5 44758 AK 5.3 614.86 0.199 0.217 0.077 12.5 74444 AZ 6.7 416.20 0.165 0.166 0.096 11.4 51340 AR 7.7 484.46 0.247 0.143 0.118 5.9 42336 CA 5.3 424.53 0.128 0.172 0.099 4.9 63783 CO 3.6 317.51 0.157 0.190 0.068 9.5 62520 > N <- rownames(V) > U <- read.table("USA48xy.net",sep="",head=FALSE,skip=1,stringsAsFactors=FALSE,nrows=48) > head(U) V1 V2 V3 V4 V5 1 1 AL 0.5000 0.6364 0.5 2 2 AR 0.3750 0.5455 0.5 3 3 AZ 0.1875 0.5455 0.5 4 4 CA 0.0625 0.4545 0.5 5 5 CO 0.2500 0.4545 0.5 6 6 CT 0.7500 0.3636 0.5 > tail(U) V1 V2 V3 V4 V5 43 43 RI 0.8125 0.3636 0.5 44 44 SC 0.6250 0.7273 0.5 45 45 WI 0.4375 0.2727 0.5 46 46 WA 0.1250 0.2727 0.5 47 47 WV 0.5625 0.4545 0.5 48 48 VT 0.6875 0.1818 0.5 > p <- match(U$V2,N) > p [1] 1 4 3 5 6 7 8 9 10 15 12 13 14 16 17 18 21 20 19 22 23 25 24 26 33 34 27 29 [29] 30 31 28 32 35 36 37 38 41 42 44 46 43 50 39 40 49 47 48 45 > P <- V[p,] > head(P) crime violent smoking drinking diabetes opioid income AL 9.0 417.97 0.211 0.133 0.124 7.5 44758 AR 7.7 484.46 0.247 0.143 0.118 5.9 42336 AZ 6.7 416.20 0.165 0.166 0.096 11.4 51340 CA 5.3 424.53 0.128 0.172 0.099 4.9 63783 CO 3.6 317.51 0.157 0.190 0.068 9.5 62520 CT 3.7 279.25 0.154 0.176 0.086 24.5 71755 > write.table(P,file="US48.csv",sep=";")