R: как я могу найти исходный код C / C из пакета gbm?

#r #package #gbm

#r #пакет #gbm

Вопрос:

 library(gbm)
gbm.fit
  

Я запустил приведенный выше код, чтобы увидеть исходный код gbm.fit . И похоже, что «мясо» функции находится в этой строке:

 gbm.obj <- .Call("gbm_fit", Y = as.double(y), Offset = as.double(offset), 
                   X = as.double(x), X.order = as.integer(x.order), weights = as.double(w), 
                   Misc = as.double(Misc), cRows = as.integer(cRows), cCols = as.integer(cCols), 
                   var.type = as.integer(var.type), var.monotone = as.integer(var.monotone), 
                   distribution = as.character(distribution.call.name), 
                   n.trees = as.integer(n.trees), interaction.depth = as.integer(interaction.depth), 
                   n.minobsinnode = as.integer(n.minobsinnode), n.classes = as.integer(nClass), 
                   shrinkage = as.double(shrinkage), bag.fraction = as.double(bag.fraction), 
                   nTrain = as.integer(nTrain), fit.old = as.double(NA), 
                   n.cat.splits.old = as.integer(0), n.trees.old = as.integer(0), 
                   verbose = as.integer(verbose), PACKAGE = "gbm")
  

Насколько мне известно, .Call это передача объекта R в код C / C . Я прав, что вызывается функция C / C gbm_fit ? Где именно я могу найти этот исходный код? Я пытался покопаться https://rdrr.io/cran/gbm/src/R/gbm.fit.R , но я, кажется, не могу найти фактический исходный код для функции C / C . Я также загрузил «gbm_2.1.8.tgz», но не смог найти исходный код.

Ответ №1:

Источник для функции gbm_fit находится в src/gbmentry.cpp в файле gbm-2.1.8.tar.gz (Не файл tgz; это двоичный файл macOS). Этот файл можно просмотреть онлайн на GitHub.