[英]merging matrix and vectors using R
我正在使用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")))
您可以創建矩陣C,然后用A和B中的值填充它:
C <- array(0, c(2,7), list(NULL, LETTERS[1:7]))
C[1, colnames(A)] <- A
C[2, colnames(B)] <- B
plyr
軟件包具有用於rbind.fill
的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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.