Fehler: Funktion "Einheit" konnte nicht gefunden werden

78

Beim Versuch, die Designeinstellungen zu ändern, gibt dieser einfache Code den folgenden Fehler aus:

library(ggplot2)
theme_nogrid <- theme_set(theme_update(  
                  plot.margin=unit(c(.25, .25, .25, .25), "in"),))

Error in do.call(theme, list(...)) : could not find function "unit"

Rgibt mir diesen Fehler für jedes Element, das 'Einheit' verwendet. Alle anderen Einstellungen, die nicht "Einheit" nennen, funktionieren einwandfrei. Ich verwende R v.2.15.2 (64-Bit-Windows).

Ich habe ausgiebig online nach diesem Problem gesucht und nichts gefunden. Ich freue mich über Vorschläge zum Problem.

opv
quelle
27
require(grid)
Gregor Thomas
4
ggplot2 importiert jetzt Gitter, anstatt es zu laden
baptiste
1
Das gleiche passiert mit dem Gitter. Jemand sollte eine Antwort korrigieren, damit sie überprüft werden kann. Es verdient, "in der Akte" zu sein.
IRTFM
Dasselbe geschah auch mit 'Methoden'. Schauen Sie sich das an : stackoverflow.com/questions/30266732/… Ist es der Fall, dass die aktuelle Version von ggplot (ich arbeite mit 1.0.1) einige Pakete importiert, anstatt sie zu laden? Ich glaube, eine umfassende Antwort von jemandem mit Kenntnissen der Innereien von Gglot sollte vorhanden sein.
Costas Bouyioukos

Antworten:

73

Dies hängt eng mit Pfeil () in ggplot2 zusammen, der nicht mehr unterstützt wird , obwohl dies nicht genau identisch ist.

[das] grid[Paket] wurde von früheren Versionen von automatisch geladen ggplot[2]( gridFunktionen für den Benutzer sichtbar / zugänglich machen); Jetzt wird NAMESPACEstattdessen über Importe darauf verwiesen , sodass Sie explizit laden müssen, gridwenn Sie gridFunktionen verwenden möchten (oder deren Hilfeseiten anzeigen möchten ).

"explizit laden" bedeutet hier library("grid")oder require("grid")( gridist ein Basispaket, muss also nicht separat installiert werden).

unit()ist eine Funktion aus dem gridPaket, daher gilt die obige Antwort (die ungefähr war arrow()).

Alternativ können Sie angeben grid::unit(...)oder grid::arrow(...)das gesamte Paket nicht explizit laden.

Ben Bolker
quelle
Auf jeden Fall eng verwandt, etwas Ähnliches passierte mir auch mit 'Methoden'. Werfen
Costas Bouyioukos