2017-02-20 6 views
0

J'ai une série de données comme ceci:Trouver toutes les combinaisons de lieux de rencontres avec google géolocalisation Api

> head(base_1[,c("logradouro","nomemun_x")]) 
       logradouro  nomemun_x 
1  RODOVIA BR-419 KM 236 Anastácio 
2  RUA CASTRO ALVES, 1130 São Marcos 
3 CONEGO JOAO MARCHESI, 526 São Marcos 
4 RUA BONFILHO NICOLETTI, 670 São Marcos 
5   VENANCIO AIRES, 444 São Marcos 
6   OSVALDO ARANHA, 478 São Marcos 

et j'obtenir un code trouver les coordonnées latitude/longitude:

geocodeAdddress <- function(address) { 
    require(RJSONIO) 
    url <- "http://maps.google.com/maps/api/geocode/json?address=" 
    url <- URLencode(paste(url, address, "&sensor=false", sep = "")) 
    x <- fromJSON(url, simplify = FALSE) 
    if (x$status == "OK") { 
      latitude <- x$results[[1]]$geometry$location$lat 
      longitude <- x$results[[1]]$geometry$location$lng 
      localizacao_tipo <- x$results[[1]]$geometry$location_type 
      formatacao_endereco <- x$results[[1]]$formatted_address 
      out<-cbind(longitude,latitude,localizacao_tipo,formatacao_endereco) 
    } else { 
      out <- NA 
    } 
    Sys.sleep(0.2) # API only allows 5 requests per second 
    out 
} 

maintenant un besoin un programme pour faire toutes les combinaisons possibles avec la variable logradouro et nomemun_x pour trouver les coordonnées que je veux.

+0

utilisation 'expand.grid()' –

+0

travail avec expand.grid() Merci, mais maintenant j'ai des combinaisons comme: –

+0

"1130 RUA 1130, São Marcos-RS, 95190000" et je veux exclure les mêmes mots ou chiffres. –

Répondre

0

Essayez ceci:

df 
#          logradouro nomemun_x 
#1     1  RODOVIA BR-419 KM 236 Anastácio 
#2     2  RUA CASTRO ALVES, 1130 São Marcos 
#3     3 CONEGO JOAO MARCHESI, 526 São Marcos 
#4     4 RUA BONFILHO NICOLETTI, 670 São Marcos 
#5     5   VENANCIO AIRES, 444 São Marcos 
#6     6   OSVALDO ARANHA, 478 São Marcos 

out <- df[as.matrix(expand.grid(1:nrow(df), 1:nrow(df))),] 
head(out, 10) 
#           logradouro nomemun_x 
#1      1  RODOVIA BR-419 KM 236 Anastácio 
#2      2  RUA CASTRO ALVES, 1130 São Marcos 
#3      3 CONEGO JOAO MARCHESI, 526 São Marcos 
#4      4 RUA BONFILHO NICOLETTI, 670 São Marcos 
#5      5   VENANCIO AIRES, 444 São Marcos 
#6      6   OSVALDO ARANHA, 478 São Marcos 
#1.1     1  RODOVIA BR-419 KM 236 Anastácio 
#2.1     2  RUA CASTRO ALVES, 1130 São Marcos 
#3.1     3 CONEGO JOAO MARCHESI, 526 São Marcos 
#4.1     4 RUA BONFILHO NICOLETTI, 670 São Marcos 

ou cartesian product:

out <- merge(df, df, by=NULL)[1:2] 
head(out, 10) 
#          logradouro.x nomemun_x.x 
#1     1  RODOVIA BR-419 KM 236 Anastácio 
#2     2  RUA CASTRO ALVES, 1130 São Marcos 
#3     3 CONEGO JOAO MARCHESI, 526 São Marcos  
#4     4 RUA BONFILHO NICOLETTI, 670 São Marcos 
#5     5   VENANCIO AIRES, 444 São Marcos 
#6     6   OSVALDO ARANHA, 478 São Marcos 
#7     1  RODOVIA BR-419 KM 236 Anastácio 
#8     2  RUA CASTRO ALVES, 1130 São Marcos 
#9     3 CONEGO JOAO MARCHESI, 526 São Marcos 
#10     4 RUA BONFILHO NICOLETTI, 670 São Marcos 
+0

pour se débarrasser des lignes ayant les mêmes valeurs dans les colonnes 'logradouro.x, nomemun_x.x' filtre avec' out <- out [out [, 1]! = Out [, 2] ,] ' –