如何解决R:in while(t<;=cc[i]){…:条件的长度为>;1,只使用第一个元素

如何解决R:in while(t<;=cc[i]){…:条件的长度为>;1,只使用第一个元素,r,R,我选择除法 0=d0 LAMBDA2函数,对于 i=1 < /代码>,没有 LAMBDAJ[i-1 ] < /代码>。您需要考虑和实现不同的例程,用于 i=1 < /代码>和 i > 1 < /代码>。(或将默认值添加到lambdaj;例如,lambdaj旁边的一些备注: 1) 对象trendlinier在您的MWE中不存在;因此trendlinier$coverties[1]应该以错误终止。我们需要首先将该对象实例化为 trendlinier <- list(coefficients

我选择除法 0=d0 我的数据集

parlocation<-125.0949
parscale<-34.98857
tau<-365
trendlinier$coefficients[1]<-78.37888
trendlinier$coefficients[2]<--5.809776
lambdaj<-c(8.665351,178.934646,161.189187,57.680814,43.540869,102.405160,108.003538,157.690273,138.600075,269.314099,353.897407,197.891330)
deretbln2<-c(0,31,62,90,121,151,182,212,243,274,304,335,365)

palication旁边的几句话:

1) 对象
trendlinier
在您的MWE中不存在;因此
trendlinier$coverties[1]
应该以错误终止。我们需要首先将该对象实例化为

trendlinier <- list(coefficients = NULL)

<> P> >注意,R的索引从1开始,即< <代码> > <代码> LAMBDA2<代码>函数,对于<代码> i=1 < /代码>,没有<代码> LAMBDAJ[i-1 ] < /代码>。您需要考虑和实现不同的例程,用于<代码> i=1 < /代码>和<代码> i > 1 < /代码>。(或将默认值添加到
lambdaj
;例如,
lambdaj旁边的一些备注:

1) 对象
trendlinier
在您的MWE中不存在;因此
trendlinier$coverties[1]
应该以错误终止。我们需要首先将该对象实例化为

trendlinier <- list(coefficients = NULL)

<> P> >注意,R的索引从1开始,即< <代码> > <代码> LAMBDA2<代码>函数,对于<代码> i=1 < /代码>,没有<代码> LAMBDAJ[i-1 ] < /代码>。您需要考虑和实现不同的例程,用于<代码> i=1 < /代码>和<代码> i > 1 < /代码>。(或者在
lambdaj
中添加一个默认值;例如,
lambdaj Big谢谢你并致以热烈的问候Tom先生,关于我的问题的细节,也许你可以在新帖子中看到谢谢你TomBig先生谢谢你并致以热烈的问候Tom先生,关于我的问题的细节,也许你可以在新帖子中看到谢谢你TomSriviona先生,你不应该发布同样的问题。)n两次。由于我们在另一个问题上取得了更大的进展,我建议您删除此问题。Sriviona,您不应该发布同一个问题两次。由于我们在另一个问题上取得了更大的进展,我建议您删除此问题。
c <- integrate(f=intensityIBNR, lower=0, upper=tau,
           subdivisions=200)
There were 50 or more warnings (use warnings() to see the first 50)
> warnings()
Warning messages:
1: In while (t <= deretbln2[i]) { ... :
the condition has length > 1 and only the first element will be used
trendlinier <- list(coefficients = NULL)
parlocation<-125.0949
parscale<-34.98857
tau<-365
trendlinier$coefficients[1]<-78.37888
trendlinier$coefficients[2]<--5.809776
lambdaj<-c(8.665351,178.934646,161.189187,57.680814,43.540869,102.405160,108.003538,157.690273,138.600075,269.314099,353.897407,197.891330)
deretbln2<-c(0,31,62,90,121,151,182,212,243,274,304,335,365)

FU0 <- function(tt){pcauchy((tau-tt)*trendlinier$coefficients[1]/((trendlinier$coefficients[2]*tt)+trendlinier$coefficients[1]),location=parlocation,scale=parscale)}
intensityIBNR <- function(tt){lambda2(tt)*(1-FU0(tt))}
cc <- integrate(f=intensityIBNR, lower=0, upper=tau, subdivisions=200)
lambda2 <- function(tt){for (i in 1:12) {if (i == 1) return(0) else if (tt <= deretbln2[i]) return(lambdaj[i-1])}}