楼主: 孤峰傲雪
3062 2

[问答] 如何找到R语言某一包中函数源码调用的函数? [推广有奖]

  • 11关注
  • 5粉丝

已卖:1784份资源

副教授

18%

还不是VIP/贵宾

-

威望
0
论坛币
9192 个
通用积分
272.3522
学术水平
20 点
热心指数
23 点
信用等级
8 点
经验
19958 点
帖子
516
精华
0
在线时间
897 小时
注册时间
2010-9-14
最后登录
2024-12-20

楼主
孤峰傲雪 发表于 2020-6-4 16:08:53 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
求助大神,在使用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>

二维码

扫码加我 拉你入群

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

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

关键词:R语言 function Spatial package Library

不仅生产知识也做大自然的搬运工

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

写R包的时候,一些函数没有必要(或者,不想)展示给用户,写NAMESPACE的时候就不会export,用户就不会直接看到这些函数了
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
cheetahfly + 10 精彩帖子
孤峰傲雪 + 5 + 3 + 4 + 1 好的意见建议

总评分: 论坛币 + 15  学术水平 + 3  热心指数 + 4  信用等级 + 1   查看全部评分

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

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 08:02