簡體   English   中英

如何在R中為integrate()做for循環

[英]how to do the for-loop for integrate() in R

以下是我的 R 代碼,如果我將“c”分別設置為 10、11、12、13、14,以獲得五個不同的“最終”,我該如何設置集成()函數的循環? 提前謝謝你。

a<-1;b<-2;c<-10
integrand<-function(k) 
{
  a+b*c*k
}
outcome<-integrate(integrand, lower = 0, upper = 1)
final<-outcome$value+c

您可以通過使用匿名函數和sapply來解決這個sapply

# create a function with two parameters
aux_function<-function(k,c) 
{
  a+b*c*k
}
# integrate on x with different c values
outcome<-sapply(10:14, function(c) {integrate(function(x) {aux_function(x,c)}, lower = 0, upper = 1)$value +c})

編輯

Onyambu 在下面的評論中找到了更好的答案

outcome<-sapply(10:14,  function(c) {integrate(aux_function,lower=0,upper=1,c=c)$value +c})

我想我的答案是對的。 我可以發布我自己的答案嗎?

  h<- list()
  g<- numeric()
  a<-1;b<-2;c<-c(10,11,12,13,14)

  for(i in 1:length(c))
  {
    h[[i]] = function(k){ a+b*c[i]*k}
    g[i] = integrate(h[[i]], lower=0, upper=1)$value+c[i]
  }
  g

暫無
暫無

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

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