r - 使用 R 合并矩阵和向量

标签 r vector matrix

我正在使用 R,但在合并矩阵中的向量时遇到问题。

所以,基本上,这就是我所拥有的:

 A=
     ["A"] ["B"] ["C"] ["D"]
[1,]  0.2   0.1   0.2   0.8

B=
     ["A"] ["B"] ["E"] ["F"] ["G"]
[1,]  0.2   0.1   0.2    1    1.2

我希望我的结果是:

C =
     ["A"] ["B"] ["E"] ["F"] ["G"] ["C"] ["D"]
[1,]  0.2   0.1   0.2    0     0    0.2   0.8
[2,]  0.2   0.1   0.2    1    1.2    0     0    

(行顺序无关紧要)


dput(a)
structure(c(0.2, 0.1, 0.2, 0.8), .Dim = c(1L, 4L), .Dimnames = list(NULL, c("A", "B", "C", "D")))

dput(b)
structure(c(0.2, 0.1, 0.2, 1, 1.2), .Dim = c(1L, 5L), .Dimnames = list(NULL, c("A", "B", "E", "F", "G")))

最佳答案

plyr 包有一个用于 data.frames 的 rbind.fill 和一个用于矩阵的 rbind.fill.matrix:

library("plyr")
ab <- rbind.fill.matrix(a, b)
ab
#       A   B   C   D   E  F   G
# [1,] 0.2 0.1 0.2 0.8  NA NA  NA
# [2,] 0.2 0.1  NA  NA 0.2  1 1.2

如您所见,缺失值用 NA 填充,但您可以轻松地用零替换它们:

ab[is.na(ab)] <- 0
ab
#        A   B   C   D   E F   G
# [1,] 0.2 0.1 0.2 0.8 0.0 0 0.0
# [2,] 0.2 0.1 0.0 0.0 0.2 1 1.2

关于r - 使用 R 合并矩阵和向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9771981/

相关文章:

r - 如何根据显示的值更改 shinydashboard 中信息框的颜色

r - 根据日期将列添加到具有值的表中

c++ - 在使用 operator= 赋值之前需要调用 std::vector.clear() 吗?

java - 带有 DefaultTableModel 的简单 JTable

arrays - 在 gfortran 中分配大矩阵时整数溢出

c++ - 尝试 "blur"C++ 中的矩阵;有缺陷的算法或代码?

r - 使用 geom_hex 将变量映射到六边形大小

r - 旋转更长的多列,同时旋转更宽的其他列

c++ - 运算符 "!="不匹配(c++ 迭代器)

c - 如何修复此代码中的段错误?