Convertir un vector en matriz lógica.

¿Existe una función R nativa que tome un vector de entrada y devuelva la matriz binaria correspondiente donde la matriz tiene el mismo número de columnas que los valores únicos en el vector de entrada?

Por ejemplo, dadox <- 1:3, Quiero devolver la siguiente matriz:

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

Las funcionescontrasts se acerca, pero parece que no puedo sortear las columnas n-1 devueltas:

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

Respuestas a la pregunta(2)

Su respuesta a la pregunta