我有一个变量名向量和几行单行矩阵。
我想创建一个新矩阵。通过将矩阵的行名与单行匹配/合并来创建新矩阵。
示例:
变量名称的向量
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
我知道有一些类似的帖子,但是以前的答案对这个帖子并不完美。
答案 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