Wie kann library () sowohl in Anführungszeichen gesetzte als auch in nicht angeführte Zeichenfolgen akzeptieren

8

Wenn Sie beispielsweise in einer R-Sitzung library(ggplot2) und library("ggplot2") eingeben, können Sie die Bibliothek ggplot2 importieren. Wenn ich jedoch ggplot2 in der interaktiven Sitzung eingib, habe ich:

%Vor%

Offensichtlich ist also ggplot2 kein Objekt. Wie kann library () eine undefinierte Variable akzeptieren, ohne sich darüber zu beschweren?

    
Yu Fu 08.08.2014, 18:56
quelle

2 Antworten

11

Gute Frage!

Öffnen wir die Funktion library() , um zu sehen, wie sie funktioniert.

Geben Sie library in Ihre interaktive Sitzung ein, um die Innereien der Funktion zu sehen.

Die wichtigsten Teile der Funktion stammen aus den Zeilen 186 bis 197.

%Vor%

Die Schlüsselzeilen sind

%Vor%

Das heißt, solange Sie das Argument character.only der Bibliothek nicht in TRUE ändern, konvertiert R den Namen Ihres Pakets in eine Zeichenfolge und sucht danach.

Lass uns testen:

%Vor%

Ausgänge:

%Vor%

während

%Vor%

lädt das Paket.

Grundsätzlich gilt: Egal, was Sie der library() -Funktion als Argument für package geben, es wird in ein Zeichen umgewandelt, es sei denn Sie geben character.only als TRUE an.

Wie in den Kommentaren betont, ist eine gute Verwendung des Arguments character.only in Fällen, in denen Sie die Bibliotheksnamen als Objekte selbst gespeichert haben.

    
bjoseph 08.08.2014, 19:07
quelle
4

So (von der Quelle von library() , das ist .... lang):

%Vor%

Eine einfache Möglichkeit, das selbst zu testen:

%Vor%     
joran 08.08.2014 19:06
quelle

Tags und Links