Como passar "nada" como argumento para `[` para subconjuntos?

Eu estava esperando poder construir umdo.call fórmula para subconjuntos sem ter que identificar o intervalo real de cada dimensão na matriz de entrada. O problema que estou correndo é que eu não consigo descobrir como imitar a função diretax[,,1:n,] , onde nenhuma entrada nas outras dimensões significa "pegue todos os elementos".

Aqui está um código de exemplo, que falha. Tanto quanto eu posso dizer,[ oudo.call substitui meuNULL listar valores com1 para o í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)) 

Eu suponho que eu poderia kludge uma solução, atribuindo o valor-2*max(dim(x)) para cada elemento dedimlistmas sim.
(FWIW, eu tenho funções alternativas que fazem o trabalho desejado viamelt/recast ou o temido "construir uma string e, em seguida,eval(parse(mystring)) , mas eu queria fazer "melhor".

Editar: como um aparte, eu corri uma versão deste código (com o equivalente da configuração TRUE do DWin) contra uma função que usavamelt & acast ; o último foi várias vezes mais lento, sem surpresa real.

questionAnswers(5)

yourAnswerToTheQuestion