2015-04-16 1 views
0

Скажем, вы пытаетесь вставить две матрицы вместе, обе из которых получили метки столбцов, используя список() с помощью colnames(). Использование cbind() в R работает так, как ожидалось для данных, но метки столбцов, кажется, теряются после операции cbind() (метки столбцов становятся V1, V2 и т. Д.). Это будет частью функции, и каждая матрица будет вводить функцию, так что одна или обе добавляемые матрицы обычно содержат различное количество столбцов (но всегда одинаковое количество строк).Как сохранить заголовки столбцов при использовании cbind() с матрицами в R

Есть ли способ сохранить имена столбцов при связывании двух матриц с помощью cbind(), или есть альтернативный способ добавления одной матрицы к другой, которая сохранит метки столбцов?

Заранее благодарен!

+0

Кажется, что это работает: 'm1 <-matrix (1: 8, nrow = 2, dimnames = list (NULL, буквы [1: 4])); m2 <-матрица (1: 6, nrow = 2, dimnames = list (NULL, буквы [5: 7])); cbind (m1, m2) '. Можете ли вы представить [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) случая, когда он не работает? – MrFlick

+0

Спасибо, это идет в правильном направлении. Использование кода: > colnm1 <- t (c (1,0,0)) > colnm2 <- t (c (1,1,0)) > colnm3 <- t (c (1,1,1)) > vectorlist <- list (colnm1, colnm2, colnm3) Это работает, но для второго ввода dimnames я пытаюсь вытащить значения «colnm1», «colnm2», «colnm3». – Dennis

+0

Используя следующий код, я получаю содержимое, а не имена: > m1 <- matrix (colnm1, nrow = 3, dimnames = list (NULL, vectorlist [1])) > m2 <- matrix (colnm2, nrow = 3, dimnames = list (NULL, vectorlist [2])) > m3 <- matrix (colnm3, nrow = 3, dimnames = list (NULL, vectorlist [3])) > finalmtx <- cbind (m1, m2 , м3) > finalmtx c (1, 0, 0) c (1, 1, 0) c (1, 1, 1) [1,] 1 1 1 [2,] 0 1 1 [3 ,] 0 0 1 – Dennis

ответ

1

Это не совсем понятно, что вы имеете в виду под «данными заголовков столбцов, используя список() с COLNAMES()»

Используя следующий код сохраняет имена столбцов, ранее присвоенные матриц:

B = matrix( c(2, 4, 3, 1, 5, 7), nrow=3, ncol=2) 
C = matrix( c(12, 34, 33, 11, 35, 27), nrow=3, ncol=2) 

colnames(B)<-list("red","blue") 
colnames(C)<-list("green","black") 

D<-cbind(B,C) 
colnames(D) 
Смежные вопросы