我有两个数据框
。可以这样想象它们:
data1 <- data.frame(c(1.2, 1.4, 1.3),
c(1.12,1.1, 1.9),
c(1.8, 1.1, 1.32))
data2 <- data.frame(c(0.4, 0.2, 0.3),
c(0.1, 0.1, 0.4),
c(0.5, 0.7, 0.4))
如何创建一个联合矩阵,它应该长这样:
combined.data
> 1.2 1.12 1.80
1.4 1.10 0.7
1.3 0.4 0.4
左上角矩阵是data1
,右下角是data2
。我的代码目前达到了我想要的效果,但是是上下颠倒的。
到目前为止,我的代码如下所示:
new <- -data1
#new <- new[, rev(colnames(data1))]
# diag(new) <- NA
corel <- data2
#corel <- corel[, rev(colnames(data2))]
new[upper.tri(new)] <- corel[upper.tri(corel)]
我需要保持行列顺序不变。
有什么想法吗?
使用Haboryme的方法后,我成功得到了结果,并生成了一个热力图展示数据。问题是在一些空间中,数据重叠在两个矩阵上。
在对角线以上应该是全红,在对角线以下应该是蓝色。
我已经接受了Haboryme的答案。问题是我的数据是32*31。如果你的矩阵不是正方形,那么它会变得混乱! 我只需向我的数据集添加1个虚拟列即可轻松解决问题!
rbind
而不是as.data.frame
... - nicolarow(data2) > col(data2)[, ncol(data2):1]
进行子集和赋值。 - alexis_laz