代码之家  ›  专栏  ›  技术社区  ›  Zheyuan Li

为什么我在输入“算术”时要参考手册页?mgcv faq`没有'library(mgcv)'?

r
  •  9
  • Zheyuan Li  · 技术社区  · 6 年前

    当我真的犯了一个错误的时候我发现了这个。我想得到手册页 mgcv.FAQ ,但是我

    • 忘了做 library(mgcv) ;
    • 说错了 ?mgcv-faq .

    但是,R奇怪地把我引向doc页面 ?Arithmetic .

    怎么回事?在我做了之后 库(mgcv) ,放置 ?mgcv常见问题解答 现在给出一个错误:

    #Error in eval(argExpr, envir) : object 'mgcv' not found
    #Error in .signatureFromCall(fdef, expr, envir, doEval) : 
    #  error in trying to evaluate the expression for argument ‘e1’ (mgcv)
    

    有人能解释这种行为吗?


    sessionInfo() 之前 库(mgcv) :

    R version 3.4.4 (2018-03-15)
    Platform: x86_64-pc-linux-gnu (64-bit)
    Running under: Ubuntu 16.04.5 LTS
    
    Matrix products: default
    BLAS/LAPACK: /usr/lib/libopenblas.so
    
    locale:
     [1] LC_CTYPE=en_GB.UTF-8       LC_NUMERIC=C              
     [3] LC_TIME=en_GB.UTF-8        LC_COLLATE=en_GB.UTF-8    
     [5] LC_MONETARY=en_GB.UTF-8    LC_MESSAGES=en_GB.UTF-8   
     [7] LC_PAPER=en_GB.UTF-8       LC_NAME=C                 
     [9] LC_ADDRESS=C               LC_TELEPHONE=C            
    [11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C      
    
    attached base packages:
    [1] stats     graphics  grDevices utils     datasets  methods   base     
    
    loaded via a namespace (and not attached):
    [1] compiler_3.4.4
    
    attached base packages:
    [1] stats     graphics  grDevices utils     datasets  methods   base    
    

    会话信息() 之后 库(mgcv) :

    ## only shows what is different from the above
    
    other attached packages:
    [1] mgcv_1.8-24  nlme_3.1-137
    
    loaded via a namespace (and not attached):
    [1] compiler_3.4.4  Matrix_1.2-14   tools_3.4.4     grid_3.4.4     
    [5] lattice_0.20-35
    

    我没有Rstudio,所以我在终端运行R。在终端中显示手动页面。

    1 回复  |  直到 6 年前
        1
  •  10
  •   Roland    6 年前

    您可以通过以下方式复制:

    expr <- quote(mgcv-faq)
    utils:::.helpForCall(expr, parent.frame())
    

    .helpForCall 被调用 ? 在内部输入。

    现在,如果表达式不包含 :: ::: 电话, .helpForCall命令 通过执行以下操作提取要查找的符号

    expr[[1L]]
    #`-`
    

    不检查表达式的长度。

    这个 - 运算符是表达式中的第一个,因为表达式被解析为函数语法。

    为什么会这样因为 ? 应该能够处理 :: ::: 在它的输入中,没有人想到要处理像您这样的用户错误。