Preciso preencher uma tabela com origens e destinos de forma que cada célula contenha o total de pessoas que vai de uma localidade outra.
O banco de dados possui um id para cada observação, além da origem e do destino. Cada observação possui um “peso” que corresponde a uma quantidade de pessoas para aquela observação. Segue um exemplo:
# Banco de dados de exemplo: localidades <- data.frame(id = c(1, 2, 3, 4, 5, 6), Peso_id = c(5, 5, 10, 10, 10, 7), Origem = factor(c("A", "A", "B", "B", "B", "C"), levels = c("A", "B", "C", "D")), Destino = factor(c("C", "D", "A", "C", "A", "D"), levels = c("A", "B", "C", "D")) ) localidades #> id Peso_id Origem Destino #> 1 1 5 A C #> 2 2 5 A D #> 3 3 10 B A #> 4 4 10 B C #> 5 5 10 B A #> 6 6 7 C D
Matriz de origens e destinos?
Se eu usar a função table()
como faço abaixo, será contabilizado apenas o nº de observações (id
) em vez do número de pessoas (ex: somar Peso_id
) para cada par de localidades:
minha_tabela <- table(localidades$ Origem , localidades$ Destino) minha_tabela #> #> A B C D #> A 0 0 1 1 #> B 2 0 1 0 #> C 0 0 0 1 #> D 0 0 0 0
No entanto eu preciso que seja considerado na conta o peso_id na hora de montar a tabela. No final eu quero obter essas informações:
minha_tabela_OD #> #> A B C D #> A 0 0 5 5 #> B 20 0 10 0 #> C 0 0 0 7 #> D 0 0 0 0
Como faz?