Vetor para matriz de diferenças entre elementos

Dado um vetor:

vec <-1:5

O que é uma maneira eficiente de criar uma matriz onde a diferença entre os componentes do vetor é exibida em uma matriz, uma matriz de diferença, se você quiser. Eu poderia obviamente fazer isso com dois loops for, mas eu preciso fazer isso com um conjunto muito maior de dados. Provavelmente há um termo para essa matriz que estou tentando fazer, mas não estou tendo sorte em encontrá-la. Aqui está como seria o resultado.

m<-matrix(c(NA), ncol=5, nrow=5, byrow=TRUE)
rownames(m)<-1:5;colnames(m)<-1:5
for(i in 1:5){for(j in 1:5){m[i,j]<-(as.numeric(rownames(m)[i])-as.numeric(rownames(m)[j]))}}
m

Obrigado por qualquer ajuda!

questionAnswers(4)

yourAnswerToTheQuestion