2017-11-07 4 views
-1

Ich habe eine Funktion f, die eine Liste L mit verschiedenen Ausgängen zurückgibt. Nehmen wir an, dass der Ausgang ist gegeben durch:So formatieren Sie die Ausgabe einer Funktion, wenn es eine Liste ist

L[[1]] A vector of values 
L[[2]] A matrix 
L[[3]] The result of a glm (or any regression model) 

Um dem Benutzer den Zugang zu den Informationen zu erleichtern, würde Ich mag Namen geben

(vector = L[[1]], matrix = L[[2]], fit = L[[3]])

so dass der Benutzer L$vector schreiben , L$matrix oder L$fit.

Wie kann ich das tun? Ich denke, dass die Idee der in glm verwendeten ähnelt, weil ihre Ausgabe eine Liste ist, aber Sie können die Koeffizienten durch $coefficients erhalten.

Danke,

+0

Liste (Vektor = L [[1]], Matrix = L [[2]], passen = L [[3]]) – myincas

Antwort

2

Sie Namen Elemente für die Liste zuweisen:

> L = list(values = "A vector of values", 
+   matrix = matrix(1,3,3), 
+   result = 1) 
> L 
$values 
[1] "A vector of values" 

$matrix 
    [,1] [,2] [,3] 
[1,] 1 1 1 
[2,] 1 1 1 
[3,] 1 1 1 

$result 
[1] 1 

Dann sind Sie auf die Listenelemente mit mehreren Arten beziehen, zum Beispiel

> L[[3]] 
[1] 1 
> L$result 
[1] 1 
> L[['result']] 
[1] 1 
+0

Vielen Dank, ich habe nicht erwartet, dass es so einfach war. Wenn ich Namen (L) schreibe, bekomme ich die verschiedenen Optionen ('vector',' matrix' und 'fit'), aber wenn ich' L $ 'schreibe und ich die TAB-Taste drücke, habe ich die Namen nicht. Irgendeine Idee? – R18

+0

Wenn Sie in RStudio 'L' definiert und dann' L $ 'geschrieben haben, sehen Sie die Namen der Listenelemente als Popup-Liste. – Heikki

+0

Nein, tut es nicht. Eine Meldung '(Keine Übereinstimmung)' erscheint. – R18

0

Sie könnten versuchen:

result=list(vector=c(1,2,....), matrix=matrix, fit=model) 
return(result) 
Verwandte Themen