Usando uma API para calcular a distância entre dois aeroportos (duas colunas) dentro de R?
Fiquei me perguntando se havia uma maneira de comparar distâncias do aeroporto (códigos IATA). Existem alguns scripts, mas não está usando R. Então, tentei isso com a API:
Dados de exemplo:
library(curl) # for curl post
departure <- c("DRS","TXL","STR","DUS","LEJ","FKB","LNZ")
arrival <- c("FKB","HER","BOJ","FUE","PMI","AYT","FUE")
flyID <- c(1,2,3,4,5,6,7)
df <- data.frame(departure,arrival,flyID)
departure arrival flyID
1 DRS FKB 1
2 TXL HER 2
3 STR BOJ 3
4 DUS FUE 4
5 LEJ PMI 5
6 FKB AYT 6
7 LNZ FUE 7
api<- curl_fetch_memory("https://airport.api.aero/airport/distance/DRS/FUE?user_key=d805e84363494ca03b9b52d5a505c4d1")
cat(rawToChar(api$content))
callback({"processingDurationMillis":0,"authorisedAPI":true,"success":true,"airline":null,"errorMessage":null,"distance":"3,416.1","units":"km"})
onde DRS corresponde à partida e ao aeroporto de chegada FUE
Então eu pensei em fazer um loopdf
e cole no URL. No entanto, isso parece de alguma forma difícil para um R - Novato
df$distance<- list(length = nrow(df))
for (i in 1:nrow(df)){
url <- paste0("https://airport.api.aero/airport/distance/", i, "FUE ?user_key=d805e84363494ca03b9b52d5a505c4d1")
myData[[i]] <- read.table(url, header=T,sep="|")
}
Saída desejada:
departure arrival flyID distance
1 DRS FKB 1 1000
2 TXL HER 2 499
3 STR BOJ 3 300
4 DUS FUE 4 200
5 LEJ PMI 5 586
6 FKB AYT 6 10292
7 LNZ FUE 7 3939