2016-08-09 13 views
-2
zu drucken

Ich habe eine Funktion mit mehreren Elementen, auf die ich zugreifen möchte (a1, a2 und f1). Zu diesem Zweck habe ich eine Liste in der Rückgabe der Funktion hinzugefügt. return(list(a1=a2,a2=a2,f1=f1))Objekte einer Funktion speichern, ohne in R

aber wenn ich die Funktion ausführen, gibt es einige, die ich nicht gedruckt werden möchte. Wie a2 und f1. Meine Frage ist also, ob ich auf meine Objekte wie a2 oder f1 zugreifen kann, ohne gedruckt zu werden?

Antwort

2

Ordnen Sie das Ergebnis Ihrer Funktion einfach einer Variablen zu, indem Sie <- verwenden. Beispiel: Wenn Ihre Funktion foo lautet, wird die Ergebnisliste einfach mit foo() gedruckt, aber res <- foo() wird nicht angezeigt, und Sie können auf res$a1, res$a2 und res$f1 zugreifen.

Wenn Sie einige der Variablen drucken möchten, rufen Sie explizit print(). Zum Beispiel am Ende Ihrer Funktion:

print(a1) 
return(list(a1=a1, a2=a2, f1=f1)) 

Manchmal möchten wir alle Funktionswerte stillschweigend zurückgeben. Wir konnten tun

invisible(list(a1=a1, a2=a2, f1=f1)) 
1

Ich weiß nicht, ob ich es richtig verstanden habe, aber Sie können die Funktion aufrufen und die Ausgabe einer Variablen zuweisen, so dass Sie können wählen, später was zu drucken.

Benennen der Liste wird Ihnen auch helfen.

EDIT: Hinzugefügt den Namen der Liste mit @ cuttlefish44 Beratung.

SomeFunctionName <- function(){ 

    a <- 1 
    b <- rep(1,10) 
    c <- rep("aaa",20) 
    d <- list(a = a,b = b,c = c) 
    return(d) 
} 

var <- SomeFunctionName() 

var$a 
var$b 
var$c 

Benennen der Liste wird Ihnen auch helfen.

+1

'd <- Liste (a, b, c); Namen (d) <- c ("a", "b", "c") 'ist äquivalent zu' d <- Liste (a = a, b = b, c = c) '. – cuttlefish44

Verwandte Themen