Converta um vetor em matriz lógica

Existe uma função R nativa que receberá um vetor de entrada e retornará a matriz binária correspondente em que a matriz possui o mesmo número de colunas que os valores exclusivos no vetor de entrada?

Por exemplo, dadox <- 1:3, Quero retornar a seguinte matriz:

     [,1] [,2] [,3]
[1,]    1    0    0
[2,]    0    1    0
[3,]    0    0    1

As funçõescontrasts chega perto, mas não consigo contornar as colunas n-1 retornadas:

> contrasts(as.factor(x))
  2 3
1 0 0
2 1 0
3 0 1

questionAnswers(2)

yourAnswerToTheQuestion