寻找

2017-02-20 48 views
0

我有一个数据集,像这场比赛的地方与谷歌的地理位置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 

,我也得到一个代码中找到坐标纬度/经度:

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 
} 

现在想一个程序使变量的所有可能组合logradouronomemun_x找到我想要的坐标。

+0

使用'expand.grid()'用expand.grid()感谢 –

+0

工作,但现在我有这样的组合: –

+0

“1130 RUA 1130,SãoMarcos-RS,95190000”我想排除相同的单词或数字。 –

回答

0

试试这个:

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 

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

的更新,以清除'out [ - out [out [,1]!= out [,2]'列'logradouro.x,nomemun_x.x'过滤器中具有相同值的行。 ,]' –