根据文档,predict
是r
中的一个多态函数,根据作为第一个参数传递的内容,实际上会调用不同的函数。
但是,文档没有给出predict
实际为任何特定类调用的函数名称的任何信息。
如果我想查看在glmnet
类型的对象上调用predict
函数时的源代码,那么最简单的方法是什么?
您可以使用GetAnywhere
查找函数
getAnywhere("predict.glmnet")
## A single object matching ‘predict.glmnet’ was found
## It was found in the following places
## registered S3 method for predict from namespace glmnet
## namespace:glmnet
## with value
##
## function (object, newx, s = NULL, type = c("link", "response",
## "coefficients", "nonzero", "class"), exact = FALSE, offset,
## ...)
## {
## type = match.arg(type)
## if (missing(newx)) {
## if (!match(type, c("coefficients", "nonzero"), FALSE))
## stop("You need to supply a value for 'newx'")
## }
## if (exact && (!is.null(s))) {
## lambda = object$lambda
## which = match(s, lambda, FALSE)
## if (!all(which > 0)) {
## lambda = unique(rev(sort(c(s, lambda))))
## object = update(object, lambda = lambda)
## }
## }
## a0 = t(as.matrix(object$a0))
## rownames(a0) = "(Intercept)"
## nbeta = rbind2(a0, object$beta)
## if (!is.null(s)) {
## vnames = dimnames(nbeta)[[1]]
## dimnames(nbeta) = list(NULL, NULL)
## lambda = object$lambda
## lamlist = lambda.interp(lambda, s)
## nbeta = nbeta[, lamlist$left, drop = FALSE] * lamlist$frac +
## nbeta[, lamlist$right, drop = FALSE] * (1 - lamlist$frac)
## dimnames(nbeta) = list(vnames, paste(seq(along = s)))
## }
## if (type == "coefficients")
## return(nbeta)
## if (type == "nonzero")
## return(nonzeroCoef(nbeta[-1, , drop = FALSE], bystep = TRUE))
## if (inherits(newx, "sparseMatrix"))
## newx = as(newx, "dgCMatrix")
## nfit = as.matrix(cbind2(1, newx) %*% nbeta)
## if (object$offset) {
## if (missing(offset))
## stop("No offset provided for prediction, yet used in fit of glmnet",
## call. = FALSE)
## if (is.matrix(offset) && dim(offset)[[2]] == 2)
## offset = offset[, 2]
## nfit = nfit + array(offset, dim = dim(nfit))
## }
## nfit
## }
## <environment: namespace:glmnet>
我想看看一个函数的源代码,看看它是如何工作的。我知道我可以通过在提示符下键入函数名称来打印函数: 在这种情况下,是什么意思?如何找到实际使用的源代码,例如:? 如何查找和等函数? 在另一些情况下,有一些R代码,但大部分工作似乎是在其他地方完成的。 如何找到函数的功能?类似地,某些函数调用、、、或。我怎样才能找到这些的源代码?
问题内容: 使用Eclipse,我想查看核心Java类(Eg )的源代码,但是当我使用“打开声明”导航到源代码时,它显示“未找到源代码”,并提供了附加源代码的选项。 我的问题是;我如何附加来源?我从哪里获得库的源.jar ? 问题答案: 您需要安装JDK。那你可以看看 对我来说(取决于您当前的版本) 您无需获取特殊的开源版本。
问题内容: 是否有任何的方式来查看Java中的默认类背后的实际代码(,,等),看看 究竟 它是什么,是怎么回事? 我不仅指文档或方法列表等,还包括源代码本身的详细信息(换句话说,如果将其复制并粘贴到整个方法/类中,则可以用来创建整个方法/类的精确副本) Java程序的代码)。 问题答案: JDK安装程序在名为的文件中提供了所有API类的Java源代码。它通常只是坐在您的安装目录中。解压缩,看看。
我点击 build.gradle里 dependencies 块中的 { implementation } IDEA跳转到: 我点击 build.gradle 里的关键字 dependencies { IDEA跳转到: 这2个文件只有接口,都不是实现源码,可我的gradleHome是all 版本的,不是bin 版本的,怎么还看不到源码呢 ?
问题内容: MySQL中有一些值: , , 等 我如何看到一个特定的价值?该手册说: 您可以通过发出SELECT @@ sql_mode语句来检索当前模式。 但是它什么也没显示,只是表中的一个空白字段作为列名。 问题答案: 它对您来说只是空白,因为您尚未设置sql_mode。如果您进行设置,则该查询将向您显示详细信息:
问题内容: 假设我有如下定义的Python函数: 我可以使用获取函数的名称。如上所述,我如何以编程方式获取其源代码? 问题答案: 如果该功能来自文件系统上可用的源文件,则可能会有帮助: 如果foo定义为: 然后: 返回值: 但是我相信,如果函数是从字符串,流中编译的,或者是从编译文件中导入的,那么您将无法检索其源代码。