2014-01-21 2 views
0

я не знаю, где я должен поставить как method=”spearman” в кодах corrplot, чтобы увидеть значение sperman корреляцииCorrplot значение

cor.mtest <- function(mat, conf.level = 0.95){ 
mat <- as.matrix(mat) 
n <- ncol(mat) 
p.mat <- lowCI.mat <- uppCI.mat <- matrix(NA, n, n) 
diag(p.mat) <- 0 
diag(lowCI.mat) <- diag(uppCI.mat) <- 1 
for(i in 1:(n-1)){ 
for(j in (i+1):n){ 
tmp <- cor.test(mat[,i], mat[,j], conf.level = conf.level) 
p.mat[i,j] <- p.mat[j,i] <- tmp$p.value 
lowCI.mat[i,j] <- lowCI.mat[j,i] <- tmp$conf.int[1] 
uppCI.mat[i,j] <- uppCI.mat[j,i] <- tmp$conf.int[2] 
} 
} 
return(list(p.mat, lowCI.mat, uppCI.mat)) 
} 
res1 <- cor.mtest(mtcars,0.95) 
+0

добавить 'method = 'spearman'' к аргументам в вашей функции' cor.mtest', чтобы он был по умолчанию (и пользователь может изменить его позже, если это необходимо). Вам также нужно добавить 'method = method' в строку' tmp <- cor.test' – rawr

+0

Это не очень эффективная реализация этого. Однако основная проблема заключается в том, что он не корректирует значения p.values ​​для множественного тестирования. – Roland

ответ

0

Аргумент method=”spearman” должен быть передан в функцию cor.test:

cor.test(mat[,i], mat[,j], conf.level = conf.level, method = ”spearman”) 

Дополнительную информацию см. На странице помощи ?cor.test.

Смежные вопросы