Таблица корреляционных матриц - PullRequest
0 голосов
/ 05 июля 2019

Я начинаю изучать, как использовать r для моего статистического анализа, и я хотел бы улучшить свой отчет и подготовить красивую таблицу для своих данных.Прямо сейчас я имею дело с выводом матрицы корреляции.Я бы хотел, чтобы это было похоже на SPSS, но, похоже, я не могу этого сделать, хотя я нашел какой-то код в Интернете.Вот этот:

corstarsl <- function(x){ 
require(Hmisc) 
x <- as.matrix(mydata) 
R <- rcorr(x)$r 
p <- rcorr(x)$P 

mystars <- ifelse(p < .001, "***", ifelse(p < .01, "** ", ifelse(p < .05, "* ", " ")))

R <- format(round(cbind(rep(-1.11, ncol(x)), R), 2))[,-1] 

Rnew <- matrix(paste(R, mystars, sep=""), ncol=ncol(x)) 
diag(Rnew) <- paste(diag(R), " ", sep="") 
rownames(Rnew) <- colnames(x) 
colnames(Rnew) <- paste(colnames(x), "", sep="") 

Rnew <- as.matrix(Rnew)
Rnew[upper.tri(Rnew, diag = TRUE)] <- ""
Rnew <- as.data.frame(Rnew) 

Rnew <- cbind(Rnew[1:length(Rnew)-1])
return(Rnew) 
}

xtable(corstarsl(swiss[,1:13]))

Но это не возвращает мне стол.Кто-нибудь может мне помочь?А также, если бы кто-нибудь мог дать мне несколько советов о том, как улучшить отчет о данных в целом, я был бы очень благодарен!Я надеюсь, что мне удастся объяснить немного, так как английский не мой первый язык.Заранее спасибо!

1 Ответ

0 голосов
/ 05 июля 2019

Непонятно, как вы ожидаете, что ваш вывод будет выглядеть, но это должно помочь:

corstarsl <- function(d){ 
  require(Hmisc) 
  x <- as.matrix(d) 
  R <- rcorr(x)$r 
  p <- rcorr(x)$P 

  mystars <- ifelse(p < .001, "***", ifelse(p < .01, "** ", ifelse(p < .05, "* ", " ")))

  R <- format(round(cbind(rep(-1.11, ncol(x)), R), 2))[,-1] 

  Rnew <- matrix(paste(R, mystars, sep=""), ncol=ncol(x)) 
  diag(Rnew) <- paste(diag(R), " ", sep="") 
  rownames(Rnew) <- colnames(x) 
  colnames(Rnew) <- paste(colnames(x), "", sep="") 

  Rnew <- as.matrix(Rnew)
  Rnew[upper.tri(Rnew, diag = TRUE)] <- ""
  Rnew <- as.data.frame(Rnew) 

  Rnew <- cbind(Rnew[1:length(Rnew)-1])
  return(Rnew) 
}

corstarsl(swiss)

#                 Fertility Agriculture Examination Education Catholic
# Fertility                                                            
# Agriculture        0.35*                                            
# Examination       -0.65***    -0.69***                               
# Education         -0.66***    -0.64***     0.70***                   
# Catholic           0.46**      0.40**     -0.57***  -0.15          
# Infant.Mortality   0.42**     -0.06       -0.11     -0.10     0.18 

Альтернативный способ получить больше информации - это:

library(PerformanceAnalytics)

chart.Correlation(swiss)

enter image description here

...