Al subconjunto de matrices, R se comporta de manera diferente dependiendo de si una de las dimensiones es de longitud 1 o no. Si una dimensión tiene longitud 1, esa dimensión se pierde durante la creación de subconjuntos:Subconjunto matriz R: dimensión perdida cuando su longitud es 1
ax <- array(1:24, c(2,3,4))
ay <- array(1:12, c(1,3,4))
dim(ax)
#[1] 2 3 4
dim(ay)
#[1] 1 3 4
dim(ax[,1:2,])
#[1] 2 2 4
dim(ay[,1:2,])
#[1] 2 4
Desde mi punto de vista, Ax y Ay son los mismos, y realizando la misma operación subconjunto de ellos debe devolver una matriz con las mismas dimensiones . Puedo ver que la forma en que R maneja los dos casos puede ser útil, pero no es deseable en el código que estoy escribiendo. Significa que cuando paso una matriz subconjuntada a otra función, la función obtendrá una matriz que le falta una dimensión, si sucediera que reduje una dimensión a la longitud 1 en una etapa anterior. (¡Entonces, en este caso, la flexibilidad de R hace que mi código sea menos flexible!)
¿Cómo puedo evitar que R pierda una dimensión de longitud 1 durante el subconjunto? ¿Hay alguna otra forma de indexación? ¿Alguna bandera para establecer?
no idéntico pero tal vez de su interés: http://stackoverflow.com/questions/12196724/generally-disable-dimension-dropping-for-matrices –