gpt4 book ai didi

r - 在 RStudio 中运行 devtools::load_all ("."时出现字符(0)警告

转载 作者:行者123 更新时间:2023-12-02 00:40:35 25 4
gpt4 key购买 nike

我有一个在 RStudio 中构建的 R 包,我们将其命名为 my_pkg。当我在 RStudio 中运行 devtools::load_all(".") 时(特别是使用 Ctrl + Shift + L 快捷键),我收到以下消息:

Loading my_pkg
Warning messages:
1: character(0)
2: character(0)
3: character(0)
4: character(0)
5: character(0)

包中的所有功能都可以正常工作。我的 NAMESPACEDESCRIPTION 文件完整,没有语法错误。但是,当我运行 ?my_pkg 时,帮助文件与 DESCRIPTION 文件中提供的规范不匹配。当我从 DESCRIPTION 中删除 Imports 时,不再有 character(0) 警告消息。当然,我需要这些进口。当我将 Imports 更改为 Suggests 时,出现 character(0) 警告消息。

这是描述文件内容,更改了一些内容以保护 IP。

Package: scoutdroid
Title: This is where the title is.
Version: 0.1
Authors@R: "Ben Hanowell <benjamin.hanowell@redfin.com> [aut, cre]"
Description: This is where the description is.
Depends:
R (>= 3.1.0)
Imports:
dplyr,
lubridate,
mboost,
randomForestSRC,
RODBC,
stringr
License: file LICENSE
LazyData: true

这是命名空间

# Generated by roxygen2 (4.0.1): do not edit by hand

import(RODBC)
import(dplyr)
import(lubridate)
import(mboost)
import(parallel)
import(randomForestSRC)
import(stringr)

当我使用“构建”选项卡中的 RStudio 构建和重新加载按钮时,我收到以下警告:

** 准备延迟加载包

Warning: replacing previous import by 'lubridate::intersect' when loading 'scoutdroid'
Warning: replacing previous import by 'lubridate::setdiff' when loading 'scoutdroid'
Warning: replacing previous import by 'lubridate::union' when loading 'scoutdroid'

编辑添加了一些更多详细信息,以帮助人们了解可能发生的情况。

编辑 2 我还添加了 DESCRIPTION 文件,尽管我不提供完整的软件包,这是专有的。

编辑 3 添加了 NAMESPACE

编辑 4 添加了在“构建”选项卡中使用 RStudio 构建和重新加载按钮时出现的警告。

最佳答案

经过评论中的一些对话,我们发现 load_all 给您的空警告实际上是在加载包时由于函数名称冲突而启动的。

问题是您从包中导入一个函数,然后覆盖该函数。当发生这种情况时,R 会抛出警告,正如您在 RStudio 中单击“构建并重新加载”时看到的那样:

Warning: replacing previous import by 'lubridate::intersect' when loading 'scoutdroid'
Warning: replacing previous import by 'lubridate::setdiff' when loading 'scoutdroid'
Warning: replacing previous import by 'lubridate::union' when loading 'scoutdroid'

看起来load_all可能试图消除这些警告(只是猜测),这就是为什么您看到character(0)而不是实际的警告。 (这些特殊的警告很难消除。)

导入整个包的命名空间通常不是一个好主意。您应该只导入您需要的符号。请参阅this post我的更多信息。

解决方案是在 NAMESPACE 文件中使用 importFrom 而不是 import

关于r - 在 RStudio 中运行 devtools::load_all ("."时出现字符(0)警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26104401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com