为什么此代码可以在 R 控制台中运行,但不能作为 R 包的一部分运行?

2023-12-21

这段代码工作正常:

data.table::data.table(A = c(2, 1))[order(A), ]

它打印:

   A
1: 1
2: 2

我也可以将此代码封装在函数中(相同的输出):

bug <- function() {
    data.table::data.table(A = c(2, 1))[order(A), ]
}
bug()

但是,将此函数放入包中并调用Bug::bug()由于某种原因不起作用,给我

Error in order(A) : object 'A' not found
Calls: <Anonymous> -> [ -> [.data.table -> [.data.frame -> order
Execution halted

以下是重现此问题的方法:

File DESCRIPTION:

Package: Bug
Title: Bug
Version: 0.0.0.0001
Description: Bug
License: GPLv3
Imports: data.table
Encoding: UTF-8
RoxygenNote: 7.1.1

File R/Bug.R:

#' @export
bug <- function() {
    data.table::data.table(A = c(2, 1))[order(A), ]
}

Then cd进入目录DESCRIPTION是和问题

R -e "devtools::document(); devtools::install(); Bug::bug()"

The data.table包做了一些奇怪的非标准评估。它试图弄清楚你的包是否想要支持它,在你的情况下,决定“不”。

我认为这是有记录的行为,但我会称其为设计缺陷,如果不是错误的话。

您可以强制它支持 NSE,方法是:

.datatable.aware <- TRUE

在你的包源代码中的某个地方。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么此代码可以在 R 控制台中运行,但不能作为 R 包的一部分运行? 的相关文章

随机推荐

  • Tensorflow获取范围内的所有变量

    我在一定范围内创建了一些变量 如下所示 with tf variable scope my scope createSomeVariables 然后我想获取 my scope 中所有变量的列表 以便我可以将其传递给优化器 这样做的正确方法是
  • 需要帮助理解 SELECT ... FOR UPDATE 导致死锁的行为

    我有两个并发事务执行这段代码 为了说明目的而进行了简化 Transactional public void deleteAccounts List
  • Sqlalchemy 选择前事件

    我正在使用 SQL Alchemy 在 SQLA 执行 select 语句之前我需要做一些工作 所以我发现最好的方法是使用 SQLA Event 但我找不到合适的 before select 事件 它在那里吗 但我不善于找到 如果它不存在
  • 如何在reactjs中使用jest和enzyme来测试媒体查询CSS是否适用于屏幕调整大小时的元素

    我正在尝试使用笑话和酶来测试我在reactjs中构建的应用程序的响应能力 我怎样才能做到这一点 我有一个侧边栏 当屏幕尺寸小于或等于 1024px 时 侧边栏会向左过渡并消失 我经历过这个 弄清楚如何模拟反应组件测试的窗口大小变化 http
  • 如何通过 PyTorch 在计算机视觉中使用软标签?

    我有一个带有软标签的图像数据集 即图像不属于单个类别 但我有一个概率分布 表明该图像有 66 的机会属于一个类别 33 的机会属于其他类别 班级 我正在努力弄清楚如何设置我的 PyTorch 代码以使其能够由模型表示并正确输出 概率保存在
  • 继续认为有害? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Linux中unistd.h和sys/types.h的区别

    当我在 The Open Group 中搜索标头 unistd h 时 我发现它包含标准符号常量和类型 对于 sys types h 它表示数据类型 然后发现都有uid t pid t等几个类似的类型 我很困惑他们为什么这么划分以及它们之间
  • JavaScript 原型

    我正在尝试理解 js 原型属性 我的示例代码 function Container param this member param var newc new Container abc Container prototype stamp f
  • iOS 9 Safari 视口错误

    我正在开发一个 Web 项目的 iPad 版本 并使用 Safari 的 Web 检查器来处理 CSS 布局等 但是 我已将我的错误跟踪到视口元标记 当装有 iOS 9 0 9 2 的 iPad Air 处于纵向模式时 视口元规则将被破坏
  • 在 Ruby 中读取文件的最后 n 行?

    我需要从文件中读取最后 25 行 用于显示最新的日志条目 Ruby 中有没有从文件末尾开始向后读取的方法 如果在 nix 系统上tail 你可以这样作弊 last 25 lines tail n 25 whatever txt
  • 从 Vista 上的服务使用 CreateProcessAsUser 的桌面问题

    我正在使用 VC 使用 CreateProcessAsUser 从 Vista 上的服务创建进程 当我通过本地登录执行此代码时 进程创建成功 当我使用远程桌面 mstsc 从另一台计算机登录到我的计算机并启动我的应用程序时 相同的代码失败
  • 如何将一组数字连接成 1 个串联数字?

    如何加入这个数组以尽可能少的步骤给出预期的输出 var x 31 31 3 1 expected output x 313131 使用数组join method Join将数组的元素连接成字符串 并返回该字符串 默认分隔符是逗号 这里的分隔
  • python Ghostscript:运行时错误:找不到 Ghostscript 库(libgs)

    当尝试运行 hello world 示例时 import sys import ghostscript args ps2pdf actual value doesn t matter dNOPAUSE dBATCH dSAFER sDEVI
  • 您的类中允许的最大方法数限制是多少?

    填写时面向对象概念调查 http www sefolklore com welcome html 为了给一些学术研究人员提供软件设计的真实数据 我想到了这个问题 您的类中允许的最大方法数限制是多少 然后 调查会继续询问您在达到此限制 N 后
  • 在“等待上传”时添加应用内购买[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在开发我的第一个应用程序 其中包含应用程序内购买 该应用程序经过测试并且运行良好 我的应用内购买在 iTunes Connect 中为
  • 如何“启用‘从与我的应用程序相同的位置下载先决条件’”

    太长了 博士 视觉工作室2013 创建普通安装程序 项目模板 其他项目类型 gt Visual Studio 安装程序 gt 安装项目 我一定缺少一些简单的东西 我已经下载了我的先决条件的安装程序 即 NDP451 KB2858728 x8
  • Elasticsearch - 获取子文档的计数,即使计数为零

    目标 对父类型文档执行 1 次搜索 并在结果中包含每个父文档的子文档计数 弹性搜索 v5 数据模型有 2 种文档类型 父文档类型和子文档类型 我发现我可以执行以下查询 GET stack parent doc search query ha
  • 不使用 javascript 是否可以实现这一点?

    我用 JSFiddle 制作了一个简单的 Web UI 我想知道是否可以制作相同的 UI不使用 JavaScript A Fiddle http jsfiddle net memetolsen 5z3nLqq5 说了1000多个字 所以问题
  • 从内容页的代码隐藏访问 ASP 母版页上的 HTML 控件

    我有一个 ASP NET C 应用程序 其中母版页包含我的应用程序的主菜单以及依赖于该母版页的几个内容页 我想突出显示与当前显示的内容页面相对应的母版页的菜单链接 为此 我已经有一个专门用于此目的的 CSS 类 称为 selected 因此
  • 为什么此代码可以在 R 控制台中运行,但不能作为 R 包的一部分运行?

    这段代码工作正常 data table data table A c 2 1 order A 它打印 A 1 1 2 2 我也可以将此代码封装在函数中 相同的输出 bug lt function data table data table