gpt4 book ai didi

r - 双循环填充相关矩阵

转载 作者:行者123 更新时间:2023-12-04 09:41:59 25 4
gpt4 key购买 nike

我有这样的数据集

set.seed(1)
a = abs(rnorm(10, mean = 0, sd= 1))
b = abs(rnorm(10, mean = 0, sd= 1))
c = abs(rnorm(10, mean = 0, sd= 1))
d = abs(rnorm(10, mean = 0, sd= 1))
df = as.data.frame(cbind(a, b, c, d))

我想要一张 table

   c   d
a 0.5 0.1
b 0.8 0.3

其中 cols 和 rows 是变量和单元格 - 变量之间的相关系数。

我做的如下

for(j in df[, 1:2])           {
for(i in df[, 3:4]) {

k=abs(cor.test(j, i, method = c( "spearman"))$estimate)
cat(k, '\n')
y <- rbind(y, k)
}}
y

得到

rho
k 0.175757576
k 0.006060606
k 0.151515152
k 0.054545455

我用了这个帖子Using double loop to fill a matrix in R

mat<-matrix(list(c(NA,NA)), nrow=2, ncol=2)
for(j in df[, 1:2]) {
for(i in df[, 3:4]) {

mat[i,j][[1]]=abs(cor.test(j, i, method = c( "spearman"))$estimate)

}}
mat

我明白了

     [,1]      [,2]     
[1,] Logical,2 Logical,2
[2,] Logical,2 Logical,2

如何填写表格?或者我可以不用循环填充它吗?

  • 在真实的数据集中有很多变量,我不能使用像ggpairs这样的工具

最佳答案

我会为 df 计算一次相关矩阵,然后从中提取我需要的任何组合。这样,您就不必多次运行 cor

m = cor(df, method = "spearman")
m[row.names(m) %in% c("a","b"), colnames(m) %in% c("c","d")]
# c d
#a 0.05454545 -0.40606061
#b 0.75757576 0.05454545

关于r - 双循环填充相关矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43767051/

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