Допустим, у меня есть матрица,
A = matrix(c(1,23,4,5,6,3,2,2,1,2), nrow = 2, ncol = 5)
с именами строк и столбцов, заданными,
rownames(A) = c('row1', 'row2')
colnames(A) = c('es', 'one', 'column', 'no', '5')
If I do:
> my.slice = A[1,,drop=FALSE]
es one column no 5
1 4 6 2 1
Я все еще вижу названия столбцов. Но если я это сделаю:
> my.slice = as.numeric(A[1,,drop=FALSE])
[1] 1 4 6 2 1
Я потерял имена столбцов, и оба на самом деле относятся к числовому классу.
Есть ли способ сделать as.vector и сохранить имена столбцов? Или, в более общем смысле, разрезать матрицу на вектор числового класса с именами (my.slice) = colnames (A)?
ПРИМЕЧАНИЕ (небольшая история). Все началось, когда я установил значение по умолчанию drop = FALSE. Затем мне нужно сделать as.vector, когда я разрезаю матрицы, но, к сожалению, теперь я теряю имена элементов в my.slice.
is.vector(A[1,])
возвращаетTRUE
, в первую очередь потому, что[
имеетdrop=TRUE
установленный по умолчанию. Попробуйтеdput(A[1,])
, и вы увидите, что это просто вектор с некоторыми именами. - person thelatemail   schedule 22.07.2014is.numeric(A[1,])
==TRUE
- person thelatemail   schedule 22.07.2014as.vector
не требуется. - person thelatemail   schedule 22.07.2014