簡體   English   中英

如何在 R 中按向量對遞歸 Function 進行編碼?

[英]How to Code a Recursive Function by Vector in R?

我有一個 function: (1 - (x / d))其中 d 是向量的成員 (V) 基於向量的長度,function 將是這樣的:例如向量是 V [2, 3.5, 5, 4.1] 所以 function 將是:

[(1-(x/2))*(1-(x/3.5))*(1-(x/5))*(1-(x/4.1))]

如果我給它一個其他向量,例如 [1.5, 2] function 將是:

[(1-(x/1.5))*(1-(x/2))]

這意味着函數的形狀取決於我的向量及其元素的長度。 我想要一個代碼來創建這個 function,然后通過在 R 中優化找到它的最大值。

這是一種方法。 Function f返回可應用於向量x的 function 。

f <- function(d) {
  force(d)
  function(x) prod(1 - x/d)
}

d <- c(1.5, 2)
g <- f(d)
sapply(1:5, g)
#[1] 0.1666667 0.0000000 0.5000000 1.6666667 3.5000000

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM