2017-07-18 7 views
0

Ich habe 2 große Datensätze, jeder haben 2000 Daten und versuchen, die Kovarianz für jede 5 Zeile zu finden.Wie finde ich Covariance für jede n Zeile in R

x=c(1,2,3,4,5) 
y=c(6,7,8,9,10) 
df=data.frame(x,y) 
group=rep(1:length(df),each=2,length=length(df)) 

Was mein nächster Schritt ist, so kann ich die Kovarianz wie this`

cov(x[1:2,],y[1:2,]) 

und

cov(x[3:4,],y[3:4,]) 
+2

Es gibt ein paar Fehler in Ihrem Beitrag, @Ian finden. 'a' ist nicht definiert,' x' und 'y' sind Vektoren am Anfang, aber später sind sie nicht, Sie haben ein'} 'anstelle von'] '. Auch die Frage ist nicht sehr klar. – Suren

+0

Entschuldigung. Ich bearbeite es einfach und ist das besser? – Ian

Antwort

0
library(zoo)  
x = c(1,2,3,4,5) 
y = c(6,7,8,9,10) 
rows = 2 
out = rollapply(data.frame(x,y), rows, function(x) cov(x[,1],x[,2]), 
        by.column=FALSE) 
out 
+0

Würdest du es bitte etwas mit Rollapply erklären? Ich habe versucht, in meinem data.frame und meine Kovarianz ist das gleiche Ergebnis aus irgendeinem Grund :( – Ian

+0

im Grunde verwendet 'rollapply' 'cov()' -Funktion für jede 'n' Zeilen im Datenrahmen von' x' und 'y '(daher' data.frame (x, y) '). Du bekommst wegen deiner Daten die gleichen Werte (' 0.5's nehme ich an?) Versuche, 'x = rnorm (5, 0, 2) zu ändern 'und' y = rnorm (5, 0, 3) ', sehen Sie den Unterschied – AK88

+0

Vielen Dank für Ihre Hilfe Ich habe die Lösung raus: D – Ian

Verwandte Themen