0
私は積分を使用して、異なる上限値を計算したいと考えています。私は、上限パラメータにベクトルやリストを入れてみました:上限値としてvecorまたはリストと統合するR
ul <- as.list(seq(0.001,1,0.001))
integrand <- function(x) {1/((x+1)*sqrt(x))}
test <- integrate(integrand, lower = 0, upper = ul)$val
エラー:
ul <- seq(0.001,1,0.001)
for (i in ul){
test = NULL
test <- rbind(test, integrate(integrand, lower = 0, upper = S[i])$val[i])
}
エラー:Error in if (is.finite(lower) && is.finite(upper)) { : missing value where TRUE/FALSE needed
Error in is.finite(upper) : default method not implemented for type 'list'
私はforループでそれを試してみました
上限を手動で変更し、rbindで結果をデータフレームに保存することはできますが、多くの時間が必要です:
test <-data.frame(test = integrate(integrand, lower = 0, upper = 0.001)$val)
test <- data.frame(rbind(test, integrate(integrand, lower = 0, upper = 0.002)$val))
など。
私は問題を解決するためにlappyを使うべきだと思いますが、私はそれを使い慣れていません。どうすれば問題を解決できますか?
x = 0では、関数は無限大で、2番目のエラーが発生しています。 –