Подмножество матрицы сначала приводит к одноэлементному вектору, который не имеет имен, как показано в вашем вопросе. Помните, что подмножество создает совершенно новый объект путем копирования. Невозможно сослаться на оригинал mdat
после поднабора.
Это будет более понятно, если вы назначите результат поднабора другому объекту.
> m <- mdat[4]
> m
[1] 12
> names(m) # no names were printed above... so
NULL
Вы действительно хотите сначала получить доступ к именам столбцов / строк и подмножеству их .
> colnames(mdat)[3]
[1] "C.3"
> rownames(mdat)[2]
[1] "row2"
Вы можете переназначить имена столбцов / строк аналогичным образом.
> colnames(mdat)[3] <- "C3"
> rownames(mdat)[2] <- "row.2"
> mdat
C.1 C.2 C3
row1 1 2 3
row.2 11 12 13