Посмотрите на вывод ?drop
.Когда вы задаете подмножество данных, матриц или массивов и получаете результат с «меньшим измерением», тогда размер результата будет уменьшен, чтобы стать «более простым».
dim( matrix(1:4, 2)[ , 1])
NULL # a single row or single column result will become an atomic vector
Если вы установите drop =ЛОЖЬ в качестве аргумента, тогда вы можете предотвратить этот эффект.
dim( matrix(1:4, 2)[ , 1, drop=FALSE]) # also works for dataframes
[1] 2 1