Reordenar filas en data.table en un orden específico
tengo undata.table
dumdt
:
set.seed(123)
dumdt <- data.table(v1=sample(1:10, 5), v2=1:5)
cuyas filas me gustaría reordenar en este orden de índices específicos (primero la tercera observación, luego la quinta, luego la segunda, etc.):
to_ord <- c(3, 5, 2, 1, 4)
Entonces me gustaríadumdt
ser el resultado dedumdt[to_ord]
pero también me gustaría hacerlo por referencia y evitar hacerlodumdt <- dumdt[to_ord]
.
Sé que puedo reordenar filas por referencia consetorder
(osetorderv
) pero solo de acuerdo con una o varias variables, en orden ascendente o descendente, no en un orden personalizado.
Sin embargo, si quisiera reordenar las columnas, no las filas, en un orden personalizado, podría usarsetcolorder
.
Entonces aquí viene mi pregunta: ¿hay una función que funcione comosetcolorder
pero con las filas (o una forma de usarsetorder
hacer lo mismo) ?
Mi salida deseada sería algo así como
setroworder(x=dumdt, neworder=to_ord)
dumdt
# v1 v2
# 1: 4 3
# 2: 6 5
# 3: 8 2
# 4: 3 1
# 5: 7 4