下面这段代码哪里出错了?p_list <- list() for (i in 2:ncol(data)) { res <- rcorr(data[,i], data[,i+11]) p_value <- signif(res$P[1,2], 2) cor_value <- round(res$r[1,2], 2)}
时间: 2024-03-14 11:45:14 浏览: 101
r代码-矩阵中的公式
这段代码中出现了几个问题:
1. 在循环开始前,没有定义 `data` 变量,需要先定义并赋值。
2. 循环中,`cor_value` 与 `p_value` 变量在每次循环中都被重新定义,导致最后得到的只是最后一次循环结果,需要将这两个变量定义在循环外部,并使用列表 `p_list` 存储每次循环的结果。
修改后的代码如下:
```
data <- matrix(rnorm(100), ncol=12)
p_list <- list()
cor_value <- NULL
p_value <- NULL
for (i in 2:ncol(data)-11) {
res <- rcorr(data[,i], data[,i+11])
p_value <- signif(res$P[1,2], 2)
cor_value <- round(res$r[1,2], 2)
p_list[[i]] <- list(cor=cor_value, p=p_value)
}
p_list
```
这个代码会随机生成一个100行12列的数据矩阵,并针对每列数据与对应后11列数据进行相关系数计算,最后将每次循环计算结果存储在 `p_list` 列表中。
阅读全文