2016-12-08 4 views
-2

mit habe ich eine Funktion in RErstellen Matrix in Schleife eine Funktion in R

TV <- function(v1,v2) { 
    write.csv(log(2^(-1/2) * exp(-1/2) * beta(1/2, v1/2)/gamma(1/2)) - log(2^(-1/2) * exp(-1/2) * beta(1/2, v2/2)/gamma(1/2)) + (v1 + 1) * digamma(v1/2 + 1/2)/2 + (-1 - v2) * digamma(v2/2 + 1/2)/2 + (-1 - v1) * digamma(v1/2)/2 + (v2 + 1) * digamma(v2/2)/2 + 0.5e0 * log(v1/v2),"write.csv") 
} 

, wie Sie die Eingabevariablen v1 und v2 sind sehen können. wenn ich gebe v1 = 1: 10 und v2 = 1 i bekommen einzelnen Vektor wie diese result for v1=1:10 and v2=1.

, was ich brauche eine Matrix ausgegeben. für v1 = 1: 10 bis v2 = 1: 10. d. h. als 10 × 10-Matrix. wie kann ich es tun R mit

Antwort

0

Try this:

write.csv(outer(1:10, 1:10, FUN=function(v1,v2)log(2^(-1/2) * exp(-1/2) * beta(1/2, v1/2)/gamma(1/2)) - 
     log(2^(-1/2) * exp(-1/2) * beta(1/2, v2/2)/gamma(1/2)) + (v1 + 1) * digamma(v1/2 + 1/2)/2 + 
     (-1 - v2) * digamma(v2/2 + 1/2)/2 + (-1 - v1) * digamma(v1/2)/2 + (v2 + 1) * digamma(v2/2)/2 + 0.5e0 * log(v1/v2)), 'write.csv') 
+0

Das funktionierte perfekt. – Sulthan