gpt4 book ai didi

r - 如何添加我自己的函数以使用 R 中先前安装的包中的方法

转载 作者:行者123 更新时间:2023-12-02 08:47:09 24 4
gpt4 key购买 nike

我正在使用 rEMM 包并希望添加一个与 fade 非常相似的函数。

一点背景知识:此函数是基于数据的时间结构“淡化”数据流。权重计算为 w = 2^{-lambda t}。我只想将此方法的权重修改为 1/(1+(T-t/c)^lambda)。在这种情况下,我有两个额外的参数必须传递给新函数:Tc 与原始 fade 函数比较。似乎当前脚本 fade.R 之间的唯一区别是第 24-30 行,我将在其中创建新的 lambda_factor

我完全不知道该怎么做。

如有任何帮助,我们将不胜感激。

最佳答案

fade 的作者似乎已经公开了 lambda 作为您可以指定的参数。使用 showMethods(fade, includeDef=TRUE) 查看代码,一切都在 rEMM:::.fade 结束,我们在此处看到

> rEMM:::.fade
function (x, t = 1, lambda = NULL)
{
if (is.null(lambda))
lambda_factor <- x@tnn_d$lambda_factor
else lambda_factor <- 2^(-lambda)
x@tnn_d$counts <- x@tnn_d$counts * lambda_factor^t
x@tracds_d$mm <- smc_fade(x@tracds_d$mm, lambda_factor^t)
invisible(x)
}
<environment: namespace:rEMM>

所以与其写一个新的函数,为什么不按照你喜欢的方式计算 lambda,转换使得这个函数中使用的 lambda_factor 与转换一致

mylambda <- function(t, lambda, T, c)
-log(1/(1+(T-t/c)^lambda)), 2) / t

然后调用fade as

fade(x, t, mylambda(t, lambda, T, c))

?将其进一步包装为

myfade <- function(x, t, lambda)
fade(x, t, mylambda(t, lambda, T, c))

关于r - 如何添加我自己的函数以使用 R 中先前安装的包中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11680175/

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