старое значение по умолчанию drop=TRUE
проблема ...
Что вы получите при переупорядочении, так это то, что таблица переведена в вектор. Если вы посмотрите на структуру table1
, то увидите, что на самом деле это матрица с одним столбцом (счетчиком), а время и элементы являются именами измерений. Это атрибуты, а не часть матрицы.
При переупорядочении также используется значение по умолчанию drop=TRUE
из функции [
. Таким образом, эта матрица только с одним столбцом переводится в вектор. Впоследствии атрибут имени для столбцов (время) также удаляется.
Вы можете избежать этого:
table1.ordered <- table1[c(3,2,1),,drop=FALSE] # reorder
table1.ordered
time
items 2222-01-01 12:00:00
C 4
B 2
A 1
Аргумент drop=TRUE
позволяет [функции отбрасывать размеры, равные 1. В этом случае матрица упрощается до вектора. Если вы не хотите, чтобы это произошло, вы должны использовать drop=FALSE
. Другой пример:
> X <- matrix(1:4,ncol=2)
> X[,1]
[1] 1 2
> X[,1,drop=FALSE]
[,1]
[1,] 1
[2,] 2