2013-02-14 18 views
78

Podczas próby modyfikacji ustawień tematycznych ten prosty kod daje następujący błąd:Błąd: nie można odnaleźć funkcji „jednostka”

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" 

R daje mi ten błąd dla dowolnego elementu, który używa „jednostka”. Wszelkie inne ustawienia, które nie wywołują "jednostki", działają bez zarzutu. Używam wersji R v.2.15.2 (64-bitowy system Windows).

Obszernie przeszukiwałem online ten problem i nic nie znalazłem. Doceniam wszelkie sugestie dotyczące problemu.

+27

'require (grid)' – Gregor

+4

ggplot2 teraz importuje siatkę, w przeciwieństwie do ładowania jej – baptiste

+1

Dziękuję! Zadziałało. – opv

Odpowiedz

74

ta jest ściśle związana, chociaż nie dokładnie identyczne, arrow() in ggplot2 no longer supported, który mówi:

[the] grid [package] was loaded automatically by previous versions of ggplot[2] (making grid functions visible/accessible to the user); now it's referred to via NAMESPACE imports instead, so you need to explicitly load grid if you want to use grid functions (or [to] look at their help pages).

"jawnie załadować" oznacza tutaj library("grid") lub require("grid") (grid to pakiet podstawowy, więc nie trzeba być zainstalowane osobno).

unit() jest funkcją z pakietu grid, więc powyższa odpowiedź (która dotyczyła około arrow()) dotyczy.

Alternatywnie można podać grid::unit(...) lub grid::arrow(...) bez jawnego ładowania całego pakietu.

+0

Zdecydowanie blisko spokrewniony, coś podobnego przydarzyło mi się również z "metodami". Spójrz: http://stackoverflow.com/questions/30266732/error-in-initfieldsscales-scales-could-not-find-function-initreffields/30292677 –

+0

, więc to powinna być akceptowana odpowiedź. – tObi

Powiązane problemy