R: ошибка в dimnames при использовании colnames с матрицей - PullRequest
0 голосов
/ 25 мая 2018

Представьте себе случай предварительного выделения матрицы 2x2 с помощью NA.Теперь я хотел бы переименовать первый столбец в «Тест» с помощью

name_matrix<-matrix(NA,2,2)
colnames(name_matrix)[1] <- "Test"

Но теперь я получаю сообщение об ошибке:

Error in dimnames(x) <- dn : length of 'dimnames' [2] not equal to array extent

Тогда как, если я преобразую матрицу в данные.frame first Я не заканчиваю этим сообщением об ошибке.

name_data_frame<-as.data.frame(name_matrix)
colnames(name_data_frame)[1] <- "Test"

Мой вопрос: есть ли у кого-нибудь идеи, как узнать больше об этом неожиданном поведении и, возможно, также, как его исправить?

1 Ответ

0 голосов
/ 25 мая 2018

Проблема в том, что после первой строки

name_matrix<-matrix(NA,2,2)

значение colnames(name_matrix) равно NULL, для которого нет смысла обращаться к своей первой записи colnames(name_matrix)[1].Вместо этого вы должны присвоить всей переменной вектор длины 2. Например, вы можете сделать:

colnames(name_matrix)<- c("Test", NA)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...