2012-04-04 24 views
0

Ich versuche, die gleiche Grafik wie in example, aber mit anderen Daten zu produzieren. Hier ist mein Code:Korrelation in R

library(SciViews) 

args <- commandArgs(TRUE) 
pdfname <- args[1] 
datafile <- args[2] 

pdf(pdfname) 
eqdata = read.csv(datafile , header = T,sep=",") 
(longley.cor <- correlation(eqdata$feqs)) 
# Synthetic view of the correlation matrix 
summary(longley.cor) 
p <- plot(longley.cor) 
print(p) 
dev.off() 

und die Daten

ques,feqs 
"abc",20 
"def",10 
"ghi",40 
"jkl",10 
"mno",20 
"pqr",10 

Ich verwende diesen Befehl

Rscript ./rscript/correlation.R "/home/co.pdf" "/home/data_correlation.csv" 

enter image description here

-Code Ausgabe

enter image description here

Ich möchte ähnliche

enter image description here

+1

Leider bin ich nicht vertraut mit 'SciViews' aber immer noch ziemlich sicher, dass die Berechnung' correlation' nur für eine Variable eines Datenrahmens keine gute Idee ist. – daroczig

+0

Vielen Dank für Ihren Vorschlag. Ich möchte eine Textkorrelation erzeugen ... Also denke nur an die Häufigkeit jedes Wortes im Moment. Irgendeine Idee für Textkorrelation? – henna

+0

Wenn die zu korrelierenden Variablen die Häufigkeiten von "abc", "def" usw. sind, dann benötigen Sie mehr als einen Wert für jede Variable. In Ihrem Beispiel hat jede Variable nur einen Wert, und Sie können die Kovarianz von Dingen, die nicht wirklich variieren, nicht berechnen. – Marius

Antwort

1

Sie versuchen, die plotcorr Funktion im ellipse Paket kann generieren. Die Hilfeseiten gibt unter anderem folgendes Beispiel:

enter image description here

Welche scheint zu sein, was Sie suchen?

Edit:

Sie Text danach hinzufügen können, werden die Kreise auf 1 gesetzt - Anzahl von Vars Gitter. Z.B .:

data(mtcars) 
Corrmat <- cor(mtcars) 
cols <- ifelse(Corrmat>0, rgb(0,0,abs(Corrmat)), rgb(abs(Corrmat),0,0)) 

library(ellipse) 
plotcorr(Corrmat,col=cols) 

n <- nrow(Corrmat) 
for (i in 1:n) 
{ 
    for (j in 1:n) 
    { 
     text(j,i,round(Corrmat[n-i+1,j],2),col="white",cex=0.6)  
    } 
} 
+0

danke sacha, ich muss Korrelation auf jeder Ellipse anzeigen. Ich könnte oben Graphen erzeugen, aber mit Etiketten Probleme haben ... im Etikett statt im Raum, ersetzt durch Punkt (.) Hast du eine Idee, wie man es reparieren kann? – henna

+1

Siehe bearbeitete Antwort. –

+0

Ich benutze immer noch das SciViews-Paket. – henna

Verwandte Themen