gpt4 book ai didi

r - 矩阵上的逆对角线

转载 作者:行者123 更新时间:2023-12-04 12:52:06 26 4
gpt4 key购买 nike

所以我有 2 dataframes .像这样想象他们:

 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 的拍摄后,我以某种方式得到了结果。我已经生成了一个热图来显示它。问题是在某些空间中,数据与 2 个矩阵重叠。

这是热图
enter image description here

对角线上方需要全红,对角线下方为蓝色。

我已经接受了 Haboryme 的回答。问题是我的数据是 32*31。如果您的矩阵 不是 广场将是一团糟!
我刚刚在我的数据集中添加了 1 个虚拟列,它就像一个魅力!

最佳答案

你可以这样做:

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=as.matrix(data1)
combined[apply(lower.tri( as.matrix(data2)), 1, rev)] <-as.matrix(data2)[apply(lower.tri( as.matrix(data2)), 1, rev)]

> combined
c.1.2..1.4..1.3. c.1.12..1.1..1.9. c.1.8..1.1..1.32.
[1,] 1.2 1.12 1.8
[2,] 1.4 1.10 0.7
[3,] 1.3 0.40 0.4

关于r - 矩阵上的逆对角线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42027783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com