Мой мыслительный процесс для нахождения кода функции имеет тенденцию:
Сначала введите имя функции
Случай 1: показывает код
Отлично, все готово.
Пример: diag
Случай 2: функция выглядит как однострочный оператор UseMethod
У вас есть метод S3.
Введите methods(fnname)
, чтобы увидеть доступные методы,
затем getAnywhere(fnname.myclass)
.
Пример: среднее значение
methods(mean)
getAnywhere(mean.default)
Случай 3: функция содержит оператор .Internal или .Primitive
Функция написана на C, для повышения производительности.
Загрузите копию исходного кода R и распакуйте архив.
Найдите в каталоге src имя функции.
РЕДАКТИРОВАТЬ: Вы также можете найти файл с помощью поиска по сайту Google или Yahoo.
site:https://svn.r-project.org/R/trunk/src functionname
Конец РЕДАКТИРОВАТЬ
Пример: qnorm
Простой поиск Windows по «qnorm» в каталоге src исходного кода R обнаруживает файл qnorm.c, который содержит определение функции.
EDIT:
qnorm.c также является лучшим результатом поиска
site:https://svn.r-project.org/R/trunk/src qnorm
Конец РЕДАКТИРОВАТЬ
Случай 4: все еще не могу найти функцию
Вероятно, это метод класса S4.
Введите class(myobj)
, чтобы найти класс.
Введите showMethods(class="myclass")
, чтобы найти доступные методы для этого класса.
Тип getMethods("fnname", "myclass")
.
Пример: сюжетное растровое изображение
Для этого требуется пакет изображений.
library(pixmap)
pixie <- pixmap(1:12, nrow=3, ncol=4)
class(pixie) #"pixmap"
showMethods(class="pixmap")
getMethod("plot", "pixmap")