Как объединить две матрицы с дублирующимися размерами в R? - PullRequest
0 голосов
/ 15 марта 2019

у меня две матрицы, Один следующий,

введите описание изображения здесь

enter image description here

а другой

введите описание изображения здесь

enter image description here

Как объединить две матрицы, основываясь на их младшем и именах столбцов (ключей)?

Я попробовал следующий код,

merged_matrix <- merge(matrix1, matrix2, by.x = "row.names", all = TRUE)

но это не слияние, две матрицы и просто добавление еще таких столбцов, как это,

введите описание изображения здесь

enter image description here

1 Ответ

0 голосов
/ 15 марта 2019

Вы можете объединить матрицы, используя объединение, как вы запланировали. Во-первых, если вы хотите объединить по именам столбцов, то вам нужно использовать что-то, что будет обращаться к именам столбцов. Просто процитируйте интересующую вас матрицу и имена столбцов (вместо имен строк), и все будет гладко (см. Пример кода ниже).

Приветствия,

m1 = round(matrix(c(rnorm(9, mean = 2)), nrow = 3, ncol = 3), digits = 2)
m2 = round(matrix(c(rnorm(9, mean = 2)), nrow = 3, ncol = 3), digits = 2)

colnames(m1) <- c(letters[1:3])
colnames(m2) <- rev(colnames(m1))

merge(m1,m2, by.x = colnames(m1), all = TRUE)

# > print(m1)
#       a    b    c
# [1,]  1.31 3.27 2.73
# [2,] -0.57 2.35 1.61
# [3,]  0.70 3.10 0.77
#
# > print(m2)
#       c    b    a
# [1,] -0.58 1.62 1.11
# [2,]  2.34 3.22 4.40
# [3,]  1.26 1.19 1.88
#  
# > merge(m1,m2, by.x = colnames(m1), all = TRUE)
#     a    b     c
# 1 -0.57 2.35  1.61
# 2  0.70 3.10  0.77
# 3  1.11 1.62 -0.58
# 4  1.31 3.27  2.73
# 5  1.88 1.19  1.26
# 6  4.40 3.22  2.34
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...