Я думаю, что поведение кода ниже странно. Это ошибка или она должна быть такой? Я хотел бы иметь только имена столбцов и не имена строк. Но невозможно удалить имена, назначив NULL. Я использовал R версии 3.6.2 и Matrix версии 1.2-18.
Вход
library(Matrix)
m <- Matrix(0, 2, 2)
colnames(m) <- c("a", "b")
m
attr(m, "Dimnames")
rownames(m)
rownames(m) <- NULL
rownames(m)
colnames(m) <- NULL
colnames(m)
attr(m, "Dimnames")
Выход
> library(Matrix)
> m <- Matrix(0, 2, 2)
> colnames(m) <- c("a", "b")
> m
2 x 2 sparse Matrix of class "dsCMatrix"
a b
a . .
b . .
> attr(m, "Dimnames")
[[1]]
NULL
[[2]]
[1] "a" "b"
> rownames(m)
[1] "a" "b"
> rownames(m) <- NULL
> rownames(m)
[1] "a" "b"
> colnames(m) <- NULL
> colnames(m)
[1] "a" "b"
> attr(m, "Dimnames")
[[1]]
[1] "a" "b"
[[2]]
NULL