gpt4 book ai didi

r - 来自矩阵的 Spearman 相关性

转载 作者:行者123 更新时间:2023-12-05 09:26:11 27 4
gpt4 key购买 nike

我有一个如下所示的数据框:

Samples   GENE GEN1  GEN2 GEN3   GEN4 GEN5
Sample1 21.0 160 110 3.90 2.62 16.5
Sample2 21.0 160 110 3.90 2.88 17.0
Sample3 22.8 108 5 3.85 2.32 18.6

我假装是使用 GENE 列与其他列(即 GENEvsGEN1、GENEvsGEN2 等)执行 spearman 相关。并获得一个表,其中包含每列的 rho 和 p 值(结果是发明的):

             rho     p-value
GENEvsGEN1 0.01193936 0.34
GENEvsGEN2 0.0113436 0.034

我知道我可以单独使用:

res2 <-cor.test(data$GENE, data$GEN1,  method = "spearman")
res2

但我有将近 5000 列,因此手动处理每一列是不可行的。

关于我如何处理它有什么建议吗?谢谢!!

最佳答案

您可以使用 for 循环来存储每个比较,如下所示

### Initiating data
data <- data.frame(GENE=rnorm(100),
GEN1=rnorm(100),
GEN2=rnorm(100),
GEN3=rnorm(100))

### Initiating empty dataframe for storing results
matCorrSpearman <- data.frame(gene=paste("GENE vs ", colnames(data)[-1]), rho=rep(NA, ncol(data)-1), pvalue=NA)

### Storing results through a loop
for(i in 2:ncol(data)){
res <- cor.test(data[, "GENE"], data[, i], method="spearman")
matCorrSpearman$rho[i-1] <- res$estimate
matCorrSpearman$pvalue[i-1] <- res$p.value
}

### Display results
matCorrSpearman

结果

           gene        rho    pvalue
1 GENE vs GEN1 0.10882688 0.2806195
2 GENE vs GEN2 0.05983798 0.5536572
3 GENE vs GEN3 0.15259526 0.1294692

关于r - 来自矩阵的 Spearman 相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74122999/

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