R:如何在包中添加额外的功能?

安德鲁

我想使用R脚本向其他人编写的包中添加一个经过特殊修改的函数,即仅用于会话,而不是永久地。假设特定示例已bls_map_county2()添加到blscrapeR软件包中。bls_map_county2只是bls_map_county()带有附加...参数函数副本,目的是更改一些地图绘制参数。我尚未插入其他参数。按原样运行该函数,出现错误:

BLS_map_county中的错误(map_data = df,fill_rate =“ unemployed_rate” ,:找不到函数“ geom_map”

我认为这是因为我的函数没有指向blscrapeR名称空间。如何将我的函数分配给(已安装,已加载)blscrapeR命名空间,还有什么需要我做的事情才能让它访问所需软件包中的任何机器?

w

此答案分为两部分-首先是对问题的一般性答案,其次是针对您所引用的特定功能的特定答案,其中问题有所不同。

1)编辑包函数时访问内部函数的通用解决方案

由于已加载包名称空间,因此您应该已经可以访问它,因此只有未导出的功能才会给您带来问题。

我通常只是将包名称和:::运算符放在非导出函数的前面即,找到对的调用的每个实例some_internal_function(),并将其替换为PackageName:::some_internal_function()如果您正在编辑的函数中调用了多个不同的内部函数,则对于每个有问题的函数调用,您可能需要执行几次。

的帮助页面:::确实包含这些警告

当心-使用':::'后果自负!

在代码中使用:::通常是一个设计错误,因为相应的对象可能由于很好的原因而保留在内部。如果您仅出于检查目的,如果需要访问对象,请考虑与软件包维护者联系。

但是对于您正在做的事情,就暂时从同一个程序包中窃取另一个功能供您自己使用而言,这些警告应该可以忽略不计(当然,后果自负-如手册中所述)

2)在 blscrapeR ::bls_map_county()

在这种情况下,违规行是

ggplot2::ggplot() + geom_map(...

包编写者在其中指定了ggplot2命名空间ggplot(),但忘记这样做了geom_map(),它也是ggplot2的一部分(而不是blscrapeR的内部函数)。

在这种情况下,只需加载ggplot2,就可以了。

您也可以考虑与软件包维护者联系,以告知他们该错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

R:如何在包中添加额外的功能?

如何在 DataTables 中添加额外的特性/功能?

如何在 docker-compose 项目 (DJANGO) 的 Pipfile 中添加额外的 python 包?

用户如何在基于QML的插件系统中添加额外的功能?

如何在表中添加额外的约束?

如何在fancybox中添加额外的标题

如何在R中的“ ivprobit”包中使用“ ivprobit”功能?

在R dplyr包中添加额外的变量到summary_at

如何在表格r包中添加标题?

R - 如何在我的数据框中添加 3 个额外的日期?

如何在R中主热图的侧面添加额外的单列热图

如何在 R 的 ggplot 中添加额外的主要网格线

如何在lubridate软件包的星期和月功能的输出中修改/添加年份?

如何在Prestashop中以编程方式添加额外费用?

如何在MongoDB的子文档中添加额外的字段?

如何在文本框中添加额外的属性参数?

qwt:如何在图例中添加额外的文本

如何在列表理解中添加额外的中间步骤?

如何在函数回调中添加额外的参数

如何在 Heroku 管道中添加额外的步骤?

如何在matplotlib中添加额外的y轴标签

如何在NumPy数组中添加额外的列

如何在对象的字段中添加额外的元数据?

如何在C ++中阻止循环添加字符的额外迭代?

如何在 Ubuntu 18.04 中添加额外的时钟?

如何在以下PHP代码中添加额外的类?

如何在Django Admin中添加额外的字段?

(mssql) 如何在提取的数据中添加额外的列

Javascript模块,如何在开发版本中添加额外的内容?