如何使用inst/extdata中的文件? R 包检查阻止在 R 3.6 中使用 system.file()

2023-12-03

我正在编写 R 包并尝试使用外部文件。我把它放在inst/extdata并使用system.file("extdata", "file.csv", package = "mypackage")在我的函数中加载文件。官方手册只描述了这种获取数据的方式inst/extdata.

但在构建过程中我收到了错误ERROR: hard-coded installation path: please report to the package maintainer and use '--no-staged-install'

论坛里说了system.file()是不好的做法,但是我应该如何在包中使用行数据?

这个问题是2018年更新后出现的,我发现可以用StagedInstall: no在描述文件中,但这是作弊,不是吗?

我想在函数内部使用原始文件(作为预先计算的静态表)并在示例中作为输入文件。我的R版本是3.6.2。


出现这个错误是因为执行包源码在安装时,而不是在加载包时。此外,从 R 3.6 开始,软件包安装在临时路径内,而不是实际的最终安装位置。

作为结果,system.file当直接在文件范围内的包内(即不在函数内)调用时,将返回虚假路径。这就是您收到的错误消息试图传达的内容。

一旦你知道了这一点,解决方案就相当简单了:不要打电话system.file在包构建期间。相反,在期间调用它包裹装载;也就是说,里面.onLoad:

.onLoad = function (libname, pkgname) {
    datafile = system.file("extdata", "file.csv", package = "mypackage")
    assign('datafile', datafile, envir = topenv())
}

这导致变量datafile在您的包命名空间内创建,您现在可以从其他地方访问它。

论坛里说了system.file()是不好的做法

不,使用system.file绝对是not不良做法;相反,它是required访问您的包扩展数据。不好的做法是在文件范围内调用该函数。但在函数内部调用它就可以了。

我发现我可以使用StagedInstall: no在描述文件中,但这是作弊,不是吗?

事实上,这是“作弊”,绝对不推荐作为正确的解决方案。

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

如何使用inst/extdata中的文件? R 包检查阻止在 R 3.6 中使用 system.file() 的相关文章

  • Rscript 正在绘制 PDF

    我有一个简单的R http en wikipedia org wiki R 28programming language 29脚本 当它通过 Rscript exe 运行时 默认情况下它会绘制为 PDF 文件 我希望脚本打开一个绘图窗口 我
  • 零膨胀泊松分布的经验和理论分布图

    以下是我正在研究的一种数据集 data lt c 0 1 0 11 2 0 3 0 0 2 1 3 1 0 1 0 0 0 2 3 0 0 0 8 1 1 1 0 1 1 2 7 0 0 0 5 2 3 6 1 1 5 2 9 0 0 1
  • 中断、保存并稍后继续循环的最佳方法

    事情是这样的 我有一个需要几天时间才能运行的循环 我想中断循环 检查进度 然后稍后继续 目前 我正在使用以下内容 for i in 1 100000 Sys sleep i 2 5 print i write csv i i csv 我检查
  • 在 R/ggplot2 中将字符串转换为函数参数的最佳方法? [复制]

    这个问题在这里已经有答案了 我正在开发一个闪亮的应用程序 用户可以选择可以使用 ggplot2 绘制哪些变量 但是我完全不确定将字符串 即要绘制的变量的名称 转换为合适的函数参数的最佳方法 考虑以下非常人为的 有效的示例 df lt dat
  • 使用 geom_bar 和 stat="identity" 绘制平均值的 hline

    我有一个条形图 其中确切的条形高度位于数据框中 df lt data frame x LETTERS 1 6 y c 1 6 1 6 1 g rep x c a b each 6 ggplot df aes x x y y fill g g
  • 添加不同的标签以在 ggplot R 中的堆积条形图中显示总计?

    我的问题有点类似 如何添加文本标签以显示ggplot中堆叠比例条的每个条中的总数n https stackoverflow com questions 65201095 how to add text label to show total
  • corr.test 与 cor.test p 值

    我正在尝试使用 psych 包 psych 1 6 9 中的 corr test 但在使用 method spearman 时 它似乎给出了与 cor test 不同的 p 值 相关系数相同 但 p 值不同 我整理了一些示例代码和输出 如下
  • 使用 dplyr 和 ggplot 绘制包括负值的多面水平发散堆积条形图

    我希望这个例子能够让人清楚 我想要堆叠条形 其中中间条形跨越 0 因为它代表中性值 这与李克特量表一起使用 为了重现性 我使用钻石数据集 以下示例与我的用例足够接近 并演示了我很难以正确的顺序获取 好 或 正 数据 因此中性最接近 0 这是
  • R Plotly 禁用图例单击和图例双击

    我想使用 R Plotly 从服务器端禁用绘图图例选择 我们看here https community plot ly t disable legend click functionality hiding traces 1345 2可以使
  • Rblpapi - 将 bdp 与 ISIN / Cusip 一起使用会出现错误

    当我将 bdp 与 ISIN 或 CUSIP 一起使用时 出现以下错误 bdp US25470XAB10 ISIN ULT PARENT TICKER EXCHANGE bdp 25470XAB1 CUSIP ULT PARENT TICK
  • R 中整数向量的大小

    我原以为 R 有一个用于存储对象的标准开销 看起来是 24 字节 至少对于整数向量而言 但一个简单的测试表明它比我意识到的要复杂 例如 采用长度为 100 的整数向量 使用随机采样 希望避免任何可能存在的偷偷摸摸的序列压缩技巧 https
  • 在 R 中使用科学记数法和 xtable

    我将 data frame 传递给 xtable dat table lt xtable dat 1 20 digits 10 我宁愿使用科学记数法 而不是像那样显示数字 我该怎么做呢 看过了 但我发现的只是R 格式化xtable中的数字
  • 对 R/Sweave 进行编程以获得正确的 \Sexpr 输出

    我在为 Sweave 进行 R 编程时遇到了一些问题 rstats twitter 小组经常指出这里 所以我想我应该把这个问题向大家提出 我是一名分析师 而不是程序员 所以在我的第一篇文章中请放轻松 问题是 我正在使用 R 在 Sweave
  • 当 header=TRUE 时 read.fwf 出错

    我的模拟数据如下所示 LastName Date email CreditCardNum AgeZip Amount Paul 21 02 14 email protected cdn cgi l email protection 4241
  • 如何在 ggplot2 中向 x 轴添加特定值?

    我正在尝试在 ggplot2 中绘制图表 我希望 x 轴显示 2 84 以及下面键入的序列 除了在 Breaks 中输入所有精确值之外 还有其他方法吗 我尝试了谷歌 但它没有解决我的问题 scale x continuous limits
  • 如何在 R 中使用 msgbox [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何在中显示消息框R 我正在寻找类似的东西msgbox在 VBA 中 因此我可以向用户发出有关问题的警报 此外 我想允许一些用户交互 例如
  • 如何对plot_ly()图表进行分面?

    Using ggplot2 and plotly制作交互式散点图facet wrap library ggplot2 library plotly g lt iris gt ggplot aes x Sepal Length y Sepal
  • R 中的频率加权,与 Stata 的结果比较

    我正在尝试分析明尼苏达大学 IPUMS 数据集中的数据1990 年美国人口普查 http usa ipums org usa sampdesc shtml us1990a in R 我正在使用survey http faculty wash
  • 生成与现有变量具有预定义相关性的二进制变量

    对于模拟研究 我想生成一组随机变量 连续变量和二元变量 这些变量与已经存在的变量具有预定义的关联binary变量 此处表示为x 对于这篇文章 假设x是按照下面的代码生成的 但请记住 在现实生活中 x是一个已经存在的变量 set seed 1
  • 如何解决 R 估计中的整数溢出错误

    我正在尝试使用估计模型speedglm在 R 中 数据集很大 约 6988 万行和 38 列 行数和列数相乘得到约 27 亿 超出了整数限制 我无法提供数据 但以下示例重现了该问题 library speedglm large exampl

随机推荐

  • 方括号前面的逗号 - MDN 文档

    MDN是我的主要 Javascript 资源 我经常看到这样的符号 currentValue index array as in let new array arr map function callback currentValue in
  • Jquery 基于选择文本的条件验证

    我只想在 select1 字段中选定的文本为 其他 时才需要 其他 字段 我正在尝试的规则是 other required function element return select1 option selected text Other
  • 单个按钮 tkinter 的多个操作

    我一直在使用 matplotlib 和 tkinter 为基于 GUI 的绘图仪编写一个程序 我为一些选项添加了一个顶层窗口 我想执行一个函数并在单击按钮后退出顶层窗口 那可能吗 我面临的问题是我使用了必须从主窗口调用的顶级窗口 所以我定义
  • 如何转换 FParsec 解析器来解析空格

    我正在实现一个解析器 它使用 FParsec 将注释视为空白 看起来它需要一个简单的解析器转换 但我还不知道如何实现它 这是我试图进行类型检查的代码 let whitespaceTextChars t r n Read whitespace
  • 从c#中的excel文件中读取列名

    我必须实现文件上传功能 允许用户上传包含表格数据的文件 上传文件时我想找到表的列名 我怎样才能做到这一点 vc 74我想指出代码中的一些错误 而不是有sheetColumns Rows 应该有sheetColumns Columns因为它已
  • 即使使用缓存控制,来自云端的 RefreshHit:max-age=0,无存储

    Cloudfront 正在为根本不应该缓存的请求获取 RefreshHit 它不应该被缓存 因为 It has cache control max age 0 no store 最小 TTL 为 0 和 我创建了多个失效 在 所以这个缓存的
  • 出现异常:java.util.ServiceConfigurationError

    运行我的应用程序时出现以下异常 我正在使用jboss 5 1 1和jdk 1 6 01 50 04 828 ERROR HelloWorld Servlet service for servlet HelloWorld threw exce
  • 加载 rgdal 时出错

    我已经成功安装了rgdal与依赖项 GDAL 和 Proj4 一起打包 安装后我成功地将包加载到R中library功能 但是 在我最近一次登录后 当我输入命令时library rgdal 我收到一条错误消息 Error package or
  • 如何使用 IronRuby 的 ErrorListener

    我有一个 C 程序来执行 IronRuby 脚本 但在这样做之前 我想先编译该文件 看看是否有任何错误 但ErrorListener 似乎不能很好地工作 我的代码有什么问题吗 class Program static void Main s
  • 什么线程调用 silverlight WCF 调用上的已完成事件处理程序?

    假设我有 Silverlight 应用程序调用 WCF 服务 void DoStuff MyProxy proxy new MyProxy proxy DoStuffCompleted DoStuffCompleted proxy DoSt
  • 如何在谷歌地图中显示两个地理坐标之间的路线? [复制]

    这个问题在这里已经有答案了 可能的重复 J2ME Android BlackBerry 行车路线 两个位置之间的路线 我只是编写一个应用程序 用于在谷歌地图视图中显示两个坐标 经纬度 之间的路线 显示单个坐标 即使有标记 效果很好 但如何用
  • 从 Windows 服务加载 GUI 应用程序

    我正在编写一个 NET Windows 服务 其作用是启动 GUI 应用程序 其源不可用 该操作是即发即忘 除了初始命令行参数之外没有任何通信 该服务应该作为给定的 Windows 帐户运行 问题 服务启动的应用程序是not显示在桌面上 它
  • HTTP 状态 500 - java.lang.ClassNotFoundException:org.apache.jsp.index_jsp

    我在 Eclipse 中创建了一个 JSP 项目 使用 Tomcat 7 但是当我运行该页面时 我得到一个 ClassnotFoundExcption 在我的项目中 我使用控制器将数据绑定到 JSP 我有一个控制器 一个服务和一个数据对象
  • 致命错误:在非对象上调用成员函数 rowCount()

    我在登录中使用 PDO 按照之前通过 sqli 的指示 并且我已经尝试了以下操作 但是我收到了此致命错误 并且无法弄清楚要提供什么 因此它满足了错误 if query gt rowCount gt 0 session stuff refre
  • 放大二维 UICollectionView

    我创建了一个UICollectionView这是水平和垂直的 它有不同的UICollectionViewCells 一切都布置正确 现在我正在努力做到zoomable The UICollectionViewCells也正确调整了大小 每次
  • 一般解析字符串到日期

    我正在与 Web 服务通信 并且 json 响应中包含日期 问题是这些日期的格式不同 有没有通用的方法来解析这些字符串 您可能应该有一个有序的格式列表来尝试 最好使用乔达时间作为一个比内置 API 好得多的 API 然后依次尝试每个 API
  • Alexa 帐户链接 - “帐户链接凭据无效”

    我正在创建带有帐户链接的 Alexa 技能 我获得了链接授权码并将其兑换为访问令牌 然后 我尝试将所有参数 代码 访问令牌 技能 ID 放入 Alexa Skill Activation API 中 我总是收到一条消息 帐户链接凭据无效 v
  • 更新jar中的.class文件

    我想更新一个 class文件在一个jar与一个新的 最简单的方法是什么 尤其是在 Eclipse IDE 中 本教程详细说明如何更新 jar 文件 jar uf jar file
  • 从 VS2008 升级到 VS2010 后,Web 安装项目删除文件

    我有一个使用 VS2008 构建的 Web 设置项目 我已经将我的解决方案转换为 VS2010 现在当我构建新的安装程序并从 MSI 运行安装时 它安装得很好 然后在最后一步 删除刚刚安装的所有文件 我已将RemovePreviousVer
  • 如何使用inst/extdata中的文件? R 包检查阻止在 R 3.6 中使用 system.file()

    我正在编写 R 包并尝试使用外部文件 我把它放在inst extdata并使用system file extdata file csv package mypackage 在我的函数中加载文件 官方手册只描述了这种获取数据的方式inst e