按行名称合并/匹配/合并向量

时间:2018-11-28 22:29:08

标签: r

我有一个变量名向量和几行单行矩阵。

我想创建一个新矩阵。通过将矩阵的行名与单行匹配/合并来创建新矩阵。

示例:

变量名称的向量

Complete_names <- c("D","C","A","B")

单行的几个矩阵<​​/ p>

Matrix_1 <- matrix(c(1,2,3),3,1)
rownames(Matrix_1) <- c("D","C","B")

Matrix_2 <- matrix(c(4,5,6),3,1)
rownames(Matrix_1) <- c("A","B","C")

所需的输出:

Desired_output <- matrix(c(1,2,NA,3,NA,6,4,5),4,2)
rownames(Desired_output) <- c("D","C","A","B")

 [,1] [,2]
D    1   NA
C    2    6
A   NA    4
B    3    5

我知道有一些类似的帖子,但是以前的答案对这个帖子并不完美。

2 个答案:

答案 0 :(得分:1)

主要工作可以通过merge完成,返回一个数据帧:

merge(Matrix_1, Matrix_2, by = "row.names", all = TRUE)
#   Row.names V1.x V1.y
# 1         A   NA    4
# 2         B    3    5
# 3         C    2    6
# 4         D    1   NA

根据您的目的,您可以进一步修改名称或摆脱Row.names

答案 1 :(得分:0)

Julius Vainora和achimneyswallow提供的答案效果很好,但只是为了准确地获得我想要的期望输出:

import math
x = 2.97656
print(math.floor(x * 10) / 10)
#Output = 2.9