gpt4 book ai didi

r - 从 R 中的命名空间调用运算符

转载 作者:行者123 更新时间:2023-12-04 17:06:50 26 4
gpt4 key购买 nike

我正在开发一个包,它依赖于 zoo (在 Imports 中列出,而不是 DependsDESCRIPTION 中)。

在一个函数中,我需要对二维 zoo 进行子集化对象来自 [运算符(operator)。但是,只要zoo包未加载,R 使用基数 [ ,返回 numeric而不是 zoo .

标准的解决方案是使用 zoo 的命名空间。 (如 zoo::`[.zoo`() )。但是,当我尝试在函数 R 中执行此操作时会引发错误 Error: '[.zoo' is not an exported object from 'namespace:zoo' ,所以我得出结论,这个运算符没有在 zoo 中导出命名空间(即使我可以在 https://github.com/rforge/zoo/blob/master/pkg/zoo/NAMESPACE 中看到它)。

方案一:可以使用:::运算符来使用包中的非导出函数。可能这不是最佳实践。

解决方案2:我可以新建一个zoo使用 coredataindex , 明确导出,即:
zoo_new <- zoo::zoo(x = zoo::coredata(zoo_old), order.by = zoo::index(zoo_old))
这不是很优雅。

解决方案 3:移动 zoo来自 ImportsDependsDESCRIPTION .这也不是最佳实践。

最佳答案

我认为你是对的,使用 :::不是最佳实践,也不允许用于 CRAN 包。根据这个帖子 http://kbroman.org/pkg_primer/pages/depends.html你应该联系zoo的作者或者直接在你的包中使用他们的函数代码。

关于r - 从 R 中的命名空间调用运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48619625/

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