gpt4 book ai didi

r - 查找小于 1 的最大 5 个值、最小 5 个值

转载 作者:行者123 更新时间:2023-12-02 01:30:46 25 4
gpt4 key购买 nike

我在 R 中有一个很大的相关矩阵结果 - 目前大约有 30 个项目彼此相关 - 因此该数组有大约 10,000 个单元格。我想找到最大的 5 个和最小的 5 个结果。我怎样才能做到这一点?

这是一个非常小的部分 - 左上角 - 的样子:

               PL1         V3          V4         V5
PL1 1.00000000 0.19905701 -0.02994034 -0.1533846
V3 0.19905701 1.00000000 0.09036472 0.1306054
V4 -0.02994034 0.09036472 1.00000000 0.1848030
V5 -0.15338465 0.13060539 0.18480296 1.0000000

表中的值始终在 1 和 -1 之间,如果有帮助的话,作为相关矩阵,对角线上方的上半部分是对角线下方下半部分的重复。

我需要小于 1 的最正 5 个和最负 5 个,包括 -1(如果存在)。

提前致谢。

最佳答案

这是另一种粗略的方法来做到这一点(毫无疑问有一种更简单的方法),但将其包装在函数中并不太难:

编辑:缩短代码。

 # Simulate correlation matrix (taken from Patrick's answer)
set.seed(1)
n<-100
x<-matrix(runif(n^2),n,n)
cor<-cor(x)

# Set diagonal and one triangle to to 0:
diag(cor) <- 0
cor[upper.tri(cor)] <- 0

# Get sorted values:
sort <- sort(cor)

# Create a dummy matrix and get lowest 5:
min <- matrix(cor %in% sort[1:5] ,n,n)
which(min,arr.ind=T)

# Same for highest 5:
max <- matrix(cor %in% sort[(n^2-5):(n^2)] ,n,n)
which(max,arr.ind=T)

正如 ulidtko 所说,另一种选择是制作图表。您可以尝试我的软件包,名为 qgraph,它可用于将相关矩阵可视化为网络:

library(qgraph)
qgraph(cor(x),vsize=2,minimum=0.2,filetype="png")

qgraph output in PNG format

关于r - 查找小于 1 的最大 5 个值、最小 5 个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4951193/

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