¿Cómo pasar “nada” como argumento a `[` para subconjunto?

Esperaba poder construir undo.call fórmula para subcontratar sin tener que identificar el rango real de cada dimensión en la matriz de entrada. El problema con el que me estoy topando es que no puedo imaginar cómo imitar la función directax[,,1:n,] , donde ninguna entrada en las otras dimensiones significa "agarrar todos los elementos".

Aquí hay un código de ejemplo, que falla Por lo que puedo decir, tampoco[ odo.call reemplaza miNULL lista los valores con1 para el índice.

x<-array(1:6,c(2,3))
dimlist<-vector('list', length(dim(x)))
shortdim<-2
dimlist[[shortdim]] <- 1: (dim(x)[shortdim] -1)
flipped <- do.call(`[`,c(list(x),dimlist)) 

Supongo que podría evitar una solución asignando el valor-2*max(dim(x)) a cada elemento dedimlist, pero yuck.
(FWIW, tengo funciones alternativas que hacen el trabajo deseado a través demelt/recast o el temido "construir una cadena y luegoeval(parse(mystring)) , pero quería hacerlo "mejor".

Edición: aparte, corrí una versión de este código (con el equivalente a la configuración VERDADERA de DWin) en una función que usémelt & acast ; Este último fue varias veces más lento para ninguna sorpresa real.

Respuestas a la pregunta(5)

Su respuesta a la pregunta