我确信这个问题的答案在某个地方,但我认为我没有使用正确的搜索词。
这是我的问题。我有多个矩阵(我将在这里简化为两个),其中每一行都是一个唯一标记的个体(其中一些在矩阵之间共享,而其中一些不是),以及共享的公共列标题。
例如:
first<-matrix(rbinom(20,1,.5),4,5)
first[,1]=c(122,145,186,199)
colnames(first)<-c("ID",901,902,903,904)
first
ID 901 902 903 904
[1,] 122 1 0 0 0
[2,] 145 0 0 0 1
[3,] 186 0 0 1 1
[4,] 199 1 0 0 0
second<-matrix(rbinom(30,1,.5),6,5)
second[,1]=c(122,133,142,151,186,199)
colnames(second)<-c("ID",901,902,903,904)
second
ID 901 902 903 904
[1,] 122 0 1 1 1
[2,] 133 0 0 0 1
[3,] 142 1 1 0 1
[4,] 151 0 1 0 0
[5,] 186 1 0 1 1
[6,] 199 1 0 0 0
我想根据“ID”和列名一起添加“第一”和“第二”。这应该会产生一个包含 7 行的矩阵(因为“第一个”矩阵中有 4 个 ID,“第二个”矩阵中有 3 个新 ID 和 3 个旧 ID:“122,133,142,145,151,186,199”)和相同的列数。
在这个例子中,我想要的结果是:
ID 901 902 903 904
[1,] 122 1 1 1 1
[2,] 133 0 0 0 1
[3,] 142 1 1 0 1
[4,] 145 0 0 0 1
[5,] 151 0 1 0 0
[6,] 186 1 0 2 2
[7,] 199 2 0 0 0