Boa tarde pessoal,
Estou com uma dúvida e não estou sabendo estruturar um loop para resolver. Tenho um dataframe que me diz o nome da cidade1, nome da cidade 2 e a distancia entre elas. Entretanto, nem sempre a distancia entre duas cidades será a mesma, sendo assim gostaria de calcular a distancia média entre elas. Um exemplo pode ser visto entre as cidades A e B. A distancia de A até B = 17 e de B até A = 15.5.
Como eu poderia fazer para calcular a distância média entre várias cidades de uma vez? De preferência que o resultado que me voltasse apresentasse apenas 1 linha para cada par de cidades, por exemplo:
cidade1 cidade2 dist_media
A B 16.25
Segue um exemplo reprodutível:
library(tidyverse)
#> Warning: package 'ggplot2' was built under R version 4.1.3
#> Warning: package 'tibble' was built under R version 4.1.3
#> Warning: package 'dplyr' was built under R version 4.1.3
df <- data.frame(
cidade1 = c("A", "B", "C", "D", "E", "F"),
cidade2 = c("B", "A", "D", "C", "F", "E"),
distancia = c(17, 15.5, 21, 19, 12, 15)
)
df
#> cidade1 cidade2 distancia
#> 1 A B 17.0
#> 2 B A 15.5
#> 3 C D 21.0
#> 4 D C 19.0
#> 5 E F 12.0
#> 6 F E 15.0
filter(df, cidade1 == "A" & cidade2 == "B" |
cidade1 == "B" & cidade2 == "A") |>
mutate(dist_media = mean(distancia))
#> cidade1 cidade2 distancia dist_media
#> 1 A B 17.0 16.25
#> 2 B A 15.5 16.25
Agradeço desde já!