Когда подмножество массивов, R ведет себя по-разному в зависимости от того, имеет ли одно из размеров длина 1 или нет. Если размер имеет длину 1, что измерение теряется при Подменю:Массив подмножества R: размерность теряется, когда его длина равна 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
С моей точки зрения, ах и ау имеют то же самое, и выполняет ту же операцию, подмножество, на них должен возвращать массив с теми же размерами , Я вижу, что способ, которым R обрабатывает два случая, может оказаться полезным, но в коде, который я пишу, это нежелательно. Это означает, что когда я передаю подмножество массива в другую функцию, функция получит массив, в котором отсутствует измерение, если мне пришлось уменьшить размер до длины 1 на более раннем этапе. (Так что в этом случае гибкость R делает мой код менее гибким!)
Как я могу предотвратить R потерять измерение длины 1 во время подмножества? Есть ли другой способ индексирования? Какой флаг установлен?
не идентичны, но, возможно, интерес: http://stackoverflow.com/questions/12196724/generally-disable-dimension-dropping-for-matrices –