gpt4 book ai didi

R 在不调用库的情况下使用 %within% 运算符(lubridate)

转载 作者:行者123 更新时间:2023-12-01 23:28:29 27 4
gpt4 key购买 nike

我正在编写一个使用一些 lubridate 函数的函数。

但是,我不确定如何从 lubridate 导入函数 %within%。通常这很容易,因为我只使用 lubridate::function。当我尝试使用 %within% 运算符时,这不起作用。有没有什么方法可以在不加载整个包本身的情况下使用包中的运算符?

最佳答案

是的。这里的问题是 %within% 是一个特殊符号,也是一个函数。在 R 中,几乎一切都是函数。例如,当您执行 2 + 2 时,R 实际上将其解释为

`+`(2, 2)

检查 this section from "Advanced R"通过 Hadley Wickham 了解这些细节。

因此,对您的问题最直接的回答是:对 %within% 函数使用相同的逻辑,但转义 % 符号并直接指定参数 a 和b 为函数。

lubridate::`%within%`(a, b)

如果您自己开发一个包,您可以使用 roxygen2 记录您使用 %within% 的函数。您需要做的就是:

#' @title Your Nice Function
#' @description This is a description...
#' @param a Your first param
#' @param b Your second param
#' @importFrom lubridate \%within\%
your_nice_function <- function(a, b) {
...
}

就是这样,因为你说这个函数从 lubridate 导入特定函数 %within%,而不加载整个 lubridate 包。

但是,如果您只想以最“熟悉”的方式在脚本中使用函数,也许最好的方法是:

`%within%` <- lubridate::`%within%`

这样做实际上是将函数复制到同名的局部变量。

关于R 在不调用库的情况下使用 %within% 运算符(lubridate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66781398/

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