Присвоить только одно имя матрице R

#r #matrix

#r #матрица

Вопрос:

Я хотел бы присвоить имя матрице, а не каждому компоненту матрицы, как это делает R, например:

 a <- matrix(1:10, nrow=5)
names(a)

NULL

names(a) <- "this is a"
a

     [,1] [,2]
[1,]    1    6
[2,]    2    7
[3,]    3    8
[4,]    4    9
[5,]    5   10
attr(,"names")
 [1] "this is a" NA          NA          NA          NA          NA          NA          NA          NA          NA   
 

Я хотел бы, чтобы этот names(a) результат был только для «This is a».

Ответ №1:

A matrix vector dim — это атрибут with . Для a vector names это имена для каждого элемента. Таким образом, присвоение с names для одного элемента приводит к заполнению других элементов NA . Одним из вариантов является прямое создание атрибута

 attr(a, "name") <- "this is a"
a
#     [,1] [,2]
#[1,]    1    6
#[2,]    2    7
#[3,]    3    8
#[4,]    4    9
#[5,]    5   10
#attr(,"name")
#[1] "this is a"
 

ПРИМЕЧАНИЕ: возможно, лучше использовать другое значение, а не names


Доступ к атрибутам можно получить через

 attributes(a)$name
#[1] "this is a"

attr(a, "name")
#[1] "this is a"