全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2911 2
2020-06-04
求助大神,在使用spdep包和spatialreg包时,想利用do_ldet函数,具体如何使用没问题。现在我想查看do_ldet函数使用的具体方法(如下面do_ldet函数源码中加粗函数),但所有加粗函数都找不到帮助文档。既然没有帮助文档,也找不到关于这些函数的任何信息,那do_ldet函数是如何使用这些函数的呢?能否认为R中就不存在这些加粗函数?或者应该从哪里找这些函数呢?

备注:
每一个加粗函数都是一种计算雅各比行列式的方法

【代码】:
library(spdep)
library(spatialreg)
do_ldet       #查看do_ldet函数时显示的函数源码

【do_ldet函数源码】
function (coef, env, which = 1)
{
    .Deprecated("spatialreg::do_ldet", msg = "Function do_ldet moved to the spatialreg package")
    if (requireNamespace("spatialreg", quietly = TRUE)) {
        return(spatialreg::do_ldet(coef = coef, env = env, which = which))
    }
    warning("install the spatialreg package")
    method <- get("method", envir = env)
    if (get("family", envir = env) == "SMA") {
        ldet <- eigen_sma_ldet(coef, env, which = which)
    }
    else {
        switch(method, eigen = {
            ldet <- eigen_ldet(coef, env, which = which)
        }, spam = {
            ldet <- spam_ldet(coef, env, which = which)
        }, spam_update = {
            ldet <- spam_update_ldet(coef, env, which = which)
        }, Matrix = {
            ldet <- Matrix_ldet(coef, env, which = which)
        }, Matrix_J = {
            ldet <- Matrix_J_ldet(coef, env, which = which)
        }, Chebyshev = {
            ldet <- cheb_ldet(coef, env, which = which)
        }, MC = {
            ldet <- mcdet_ldet(coef, env, which = which)
        }, LU = {
            ldet <- LU_ldet(coef, env, which = which)
        }, LU_prepermutate = {
            ldet <- LU_prepermutate_ldet(coef, env, which = which)
        }, moments = {
            ldet <- moments_ldet(coef, env, which = which)
        }, SE_classic = {
            ldet <- SE_classic_ldet(coef, env, which = which)
        }, SE_whichMin = {
            ldet <- SE_whichMin_ldet(coef, env, which = which)
        }, SE_interp = {
            ldet <- SE_interp_ldet(coef, env, which = which)
        }, stop("...\n\nUnknown method\n"))
    }
    ldet
}
<bytecode: 0x000000001ac00180>
<environment: namespace:spdep>

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2020-6-4 18:25:19
试试getAnywhere(函数名),会给出函数定义和在哪个包
如果你知道函数在哪个包,可以用包名+3个冒号+函数名进行调用

写R包的时候,一些函数没有必要(或者,不想)展示给用户,写NAMESPACE的时候就不会export,用户就不会直接看到这些函数了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2020-6-4 19:14:53
megapanda 发表于 2020-6-4 18:25
试试getAnywhere(函数名),会给出函数定义和在哪个包
如果你知道函数在哪个包,可以用包名+3个冒号+函数名 ...
谢谢,已经按照您指导的方式获取到了相关信息
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群