2012-08-04 6 views
5

Ich erwartete den folgenden Code, um die untere und obere Grenze eines 95% Konfidenzintervall zurückzukehren:Gang Objekte führt zu einem Fehler zurückkehren

confint95 = function(mean, se) 
{ 
    confint = abs(se*1.96) 
    lower = abs(mean-cint) 
    upper = abs(mean+cint) 
    return(lower,upper) 
} 

Aber das gibt diese Meldung:

Error in return(lower, upper) : multi-argument returns are not permitted 

Wie kann ich die Funktion so einstellen, dass die untere und obere Grenze eines 95% -Konfidenzintervalls zurückgegeben wird?

+3

'return (c (lower, upper))' – Andrie

Antwort

11

Funktion gibt den letzten Ausdruck zurück. Wenn Sie einen Moment ohne return denken. Wenn Sie die Funktion als letzten auszuwertenden Ausdruck

gaben, würde dies zu einem Fehler führen. Wenn Sie IDE haben, würde es sich wahrscheinlich auch über einen Syntaxfehler beschweren. Sie würden das lösen, indem Sie die beiden Elemente mit einer c als @Andrie angegebenen kombinieren. Ergo, du musst ein einzelnes Objekt passieren. Ich benutze oft Listen, um verschiedene Datenstrukturen auszugeben. In Ihrem Fall ist ein Vektor mehr als ausreichend.

1

zwei oder mehr Ergebnisse reurn, verwenden "c"

dummy <- function(){ 
    a <- 1 
    b <- 22 
    return(a,b) 
} 

dummy() 

# Error in return(a, b) : multi-argument returns are not permitted 

dummy2 <- function(){ 
    a <- 1 
    b <- 22 
    return(c(a,b)) 
} 

dummy2() 
# [1] 1 22 
Verwandte Themen