Скажем, вы пытаетесь вставить две матрицы вместе, обе из которых получили метки столбцов, используя список() с помощью colnames(). Использование cbind() в R работает так, как ожидалось для данных, но метки столбцов, кажется, теряются после операции cbind() (метки столбцов становятся V1, V2 и т. Д.). Это будет частью функции, и каждая матрица будет вводить функцию, так что одна или обе добавляемые матрицы обычно содержат различное количество столбцов (но всегда одинаковое количество строк).Как сохранить заголовки столбцов при использовании cbind() с матрицами в R
Есть ли способ сохранить имена столбцов при связывании двух матриц с помощью cbind(), или есть альтернативный способ добавления одной матрицы к другой, которая сохранит метки столбцов?
Заранее благодарен!
Кажется, что это работает: '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
Спасибо, это идет в правильном направлении. Использование кода: > 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
Используя следующий код, я получаю содержимое, а не имена: > 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