2011-07-29 11 views
17

Jestem nowy dla R i wpadłem na kawałek kodu, którego nie rozumiem. Dokładniej, chciałbym wiedzieć, co robi .Internal. Oto przykład, który próbuję przekonwertować do Matlab:R .Internal for Beginners

dunif <- function (x, min = 0, max = 1, log = FALSE) 
.Internal(dunif(x, min, max, log)) 
<environment: namespace:stats> 

Chciałbym wiedzieć, co .Internal i <environment ... > zrobić.

Dziękuję bardzo z góry, Simon

+0

Zobacz także http://stackoverflow.com/questions/1439348/how-to-examine-the-code-ofunction-in-r-thats-object-class-sensitive/1444512 –

+3

W tym konkretnym przypadku przykład może być pomocne, aby wiedzieć, że odpowiedź jest po prostu '1/(max-min)' –

Odpowiedz

20

Od ?.Internal:

‘.Internal’ performs a call to an internal code which is built in 
to the R interpreter. 

Musisz znaleźć kod dla dunif w źródłach R. Znalazłem ten typ funkcji przez grep dla niego w main/names.c następnie grep dla nazwy, do której się odnosi (do_math3 w tym przypadku), którą znajdziesz w main/arithmetic.c.

<environment: namespace:stats> po prostu podaje lokalizację/przestrzeń nazw funkcji.

4

Znalazłem R in a Nutshell przydatny zasób do wyjaśnienia obiektów i środowisk w sposób bez zastraszenia. Warto spojrzeć.

Powiązane problemy