gpt4 book ai didi

r - 将多个属性设置为函数内的变量

转载 作者:行者123 更新时间:2023-12-04 14:05:52 25 4
gpt4 key购买 nike

我正在尝试在函数内设置属性:

RFliq=function(x,tx.aa,a,ir) {
if(a>50) a=a/365
l1=x*((1-ir)*(1+tx.aa)^a+ir)
attributes(l1)$ir <- ir*x*((1+tx.aa)^a-1)
attributes(l1)$tx.ef.aa <- (l1/x)^(1/a)
# attr(l1,'ir') <- ir*x*((1+tx.aa)^a-1)
# attr(l1,'tx.ef.aa') <- (l1/x)^(1/a)
return(l1)}

但结果“嵌套”了属性:

RFliq(10000,.1335,2,.15)
[1] 12420.99
attr(,"ir")
[1] 427.2334
attr(,"tx.ef.aa")
[1] 1.114495
attr(,"tx.ef.aa")attr(,"ir")
[1] 427.2334

如何避免将一个属性应用于另一个属性?
This question did not help

最佳答案

一种方法是使用 [] 在您的第二个属性分配中提取 l1 的值:

RFliq=function(x,tx.aa,a,ir) {
if(a > 50) a = a / 365
l1=x*((1-ir)*(1+tx.aa)^a+ir)
attributes(l1)$ir <- ir*x*((1+tx.aa)^a-1)
attributes(l1)$tx.ef.aa <- (l1[1]/x)^(1/a)
return(l1)
}

RFliq(10000, 0.1335, 2, 0.15)
#> [1] 12420.99
#> attr(,"ir")
#> [1] 427.2334
#> attr(,"tx.ef.aa")
#> [1] 1.114495

reprex package 创建于 2021-07-27 (v1.0.0)

关于r - 将多个属性设置为函数内的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68551154/

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