[R] converting zipcodes to latitude/longitude

Jim Lemon drj|m|emon @end|ng |rom gm@||@com
Thu May 16 06:36:31 CEST 2019


Hi Nicola,
Good to learn that you solved the problem. Shape files are usually a
set of polygons for the named areas.  I did some work with the "rgdal"
package a while ago and it wasn't very difficult. There might be
better methods now, so posting to R-SIG-geo is a good idea.

Jim

On Thu, May 16, 2019 at 6:30 AM Nicola Ruggiero
<nicola.ruggiero.unt using gmail.com> wrote:
>
> Hi Jim,
>
> I ended up collaborating with someone, and, on the basis of looking at
> your code (we did take it into consideration and talk about it), we
> came up with this:
>
> library(stringr)
> numextract <- function(string){
>      str_extract(string, "\\-*\\d+\\,*\\d*")
> }
> myDataSet$zip<-numextract(myDataSet$state)
> combineddata<-merge(zipcode, myDataSet, by.x="zip", by.y="zip")
>
> So, as I understand it, we build a function the purpose of which was
> to extract the numerical value from a string value, imputed that into
> a column, then merged the two data frames together. It worked!
>
> Now I just need to figure out this thing called shape data...basically
> I need to figure out how to interpose a shape of the United States
> underneath my data points so that I can see them over the location to
> which they correspond.
>
> Nicola
>
> On Mon, May 13, 2019 at 9:09 PM Jim Lemon <drjimlemon using gmail.com> wrote:
> >
> > Hi Nicola,
> > Getting the blank rows will be a bit more difficult and I don't see
> > why they should be in the final data frame, so:
> >
> > townzip<-read.table(text="waltham, Massachusetts 02451
> > Columbia, SC 29209
> >
> > Wheat Ridge , Colorado 80033
> > Charlottesville, Virginia 22902
> > Fairbanks, AK 99709
> > Montpelier, VT 05602
> > Dobbs Ferry, New York 10522
> >
> > Henderson , Kentucky 42420",
> > sep="\t",stringsAsFactors=FALSE)
> > zip_split<-function(x) {
> >  commasplit<-unlist(strsplit(x,","))
> >  state<-trimws(gsub("[[:digit:]]","",commasplit[2]))
> >  zip<-trimws(gsub("[[:alpha:]]","",commasplit[2]))
> >  return(c(commasplit[1],state,zip))
> > }
> > townzipsplit<-as.data.frame(t(sapply(townzip$V1,zip_split)))
> > rownames(townzipsplit)<-NULL
> > names(townzipsplit)<-c("town","state","zip")
> > townzipsplit$latlon<-NA
> > # I don't know the name of the zipcode column in the "zipcode" data frame
> > newzipdf<-merge(townzipsplit,zipcodedf,by.x="zip",by.y="zip")
> >
> > Jim
> >
> > On Tue, May 14, 2019 at 5:57 AM Nicola Ruggiero
> > <nicola.ruggiero.unt using gmail.com> wrote:
> > >
> > > Hello everyone,
> > >
> > > I've downloaded Jeffrey Breen's R package "zipcode," which has the
> > > latitude and longitude for all of the US zip codes. So, this is a
> > > data.frame with 43,191 observations. That's one data frame in my
> > > environment.
> > >
> > > Then, I have another data.frame with over 100,000 observations that
> > > look like this:
> > >
> > > waltham, Massachusetts 02451
> > > Columbia, SC 29209
> > >
> > > Wheat Ridge , Colorado 80033
> > > Charlottesville, Virginia 22902
> > > Fairbanks, AK 99709
> > > Montpelier, VT 05602
> > > Dobbs Ferry, New York 10522
> > >
> > > Henderson , Kentucky 42420
> > >
> > > The spaces represent absences in the column. Regardless,
> > > I need to figure out how to write a code that would, presumably, match
> > > the zipcodes and produce another column to the data frame with the
> > > latitude and longitude. So, for example, the code would recognize
> > > 02451 above, and, in the the column next to it, the code would write
> > > 42.3765° N, 71.2356° W in the column next to it, since that's the
> > > latitude and longitude for Waltham, Massachusetts.
> > >
> > > Any idea of how to begin a code that would perform such an operation?
> > >
> > > Again, I have a data.frame with the zipcodes linked to the the
> > > latitudes and longitudes, on the one hand, and another data.frame with
> > > only zipcodes (and some holes). I need to produce the corresponding
> > > latitude/longitudes in the latter data.frame.
> > >
> > > Nicola
> > >
> > > ______________________________________________
> > > R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > > https://stat.ethz.ch/mailman/listinfo/r-help
> > > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> > > and provide commented, minimal, self-contained, reproducible code.
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list