ich hoffe ich poste hier an der richtigen Stelle.
Mein Problem ist Folgendes: Ich möchte eine Funktion erstellen, die für die als Parameter angegebene Matrix die Variablen paarweise den Korrelationskoeffizienten nach Pearson berechnet.
Genauer: Die Form der Matrix die ich als Parameter angebe entspricht vom Aufbau her dem eines dataframes, dh in der ersten Zeile befinden sich die Spaltennamen, in den darauf folgenden Zeilen die Beobachtungen. Der Output soll eine Matrix sein, die im Endeffekt wie ein corrplot ist, dh die erste Variable soll mit allen anderen auf Korrelation überprüft werden und das Ergebnis soll jeweils in ein "Feld", der Matrix.
Hier mein bisheriger Versuch:
Code: Alles auswählen
cor.test.matrix<- function(mat)
{ p <- dim(mat)[2]
korr.matrix <- matrix(nrow = p, ncol = p, data = 0)
for(i in 1:p)
{for(j in 1:p)
{korr.matrix <- korr.matrix[i,j]+cor.test(formula = ~i+j, data = mat, method = "pearson")$statistics}}
return(korr.matrix)}
Code: Alles auswählen
Error in cor.test.default(x = 1L, y = 1L, method = "pearson") :
not enough finite observations
Code: Alles auswählen
> str(X)
num [1:548, 1:6] 1 1 1 1 1 1 1 1 1 1 ...
- attr(*, "dimnames")=List of 2
..$ : chr [1:548] "1" "2" "4" "5" ...
..$ : chr [1:6] "(Intercept)" "age" "duration" "residence_since" ...
- attr(*, "assign")= int [1:6] 0 1 2 3 4 5
Code: Alles auswählen
head(X)
(Intercept) age duration residence_since num_dependents
1 1 67 6 4 1
2 1 22 48 2 1
4 1 45 42 4 2
5 1 53 24 4 2
8 1 35 36 2 1
10 1 28 30 2 1
installment_commitment
1 4
2 2
4 2
5 3
8 2
10 4
Danke schonmal für eure Zeit, ich hoffe jemand kann mir helfen. Falls