为什么在R for循环中使用向量和“1”时会出现不等式:&引用;?
我没有真正的问题,但由于不同的编写方案,我的代码没有太大的差异 情况如下: 我编写了一个for循环,它应该在函数中插入某些值。在此之前,我定义了要插入的参数。代码如下所示:为什么在R for循环中使用向量和“1”时会出现不等式:&引用;?,r,loops,for-loop,variables,undefined,R,Loops,For Loop,Variables,Undefined,我没有真正的问题,但由于不同的编写方案,我的代码没有太大的差异 情况如下: 我编写了一个for循环,它应该在函数中插入某些值。在此之前,我定义了要插入的参数。代码如下所示: yield <- rep(1, nrow(timeseries1)) pc <- c(1:1265) tc <- c(1:1265) for(i in 1:1265){ pc[i] <- timeseries1$`CoCo-Preis`[i] tc[i] <- timeseries1$t
yield <- rep(1, nrow(timeseries1))
pc <- c(1:1265)
tc <- c(1:1265)
for(i in 1:1265){
pc[i] <- timeseries1$`CoCo-Preis`[i]
tc[i] <- timeseries1$t[i]
yield[i] <- yield.to.call(ytc,p=pc[i],t=tc[i],c=5,N=100)
}
yield <- data.table(yield)
复制时,循环似乎在循环的第二次但最后一次迭代时停止,因此您的
i
在1264L
或在第五次迭代时的样本数据中被卡住。从…起
很明显,问题在于uniroot
函数的间隔。根据该链接中的建议,在将extendInt=“yes”
添加到行中时,它对我有效
yield.t.c <- uniroot(q2,c(-1,10),tol = .Machine$double.eps^0.5, extendInt = "yes")$root
yield.t.c复制时,循环似乎在循环的第二次但最后一次迭代时停止,因此您的i
在1264L
或在第五次迭代时的样本数据中被卡住。从…起
很明显,问题在于uniroot
函数的间隔。根据该链接中的建议,在将extendInt=“yes”
添加到行中时,它对我有效
yield.t.c <- uniroot(q2,c(-1,10),tol = .Machine$double.eps^0.5, extendInt = "yes")$root
yield.t.c当它在1264停止时,您是否收到任何错误消息?否。它似乎在表中打印了与i=1264相同的值。该值应类似于0.133,但为1,等于1294 i的值。但这将由第二个代码进行调整。不知道为什么,但它是有效的。我只是想知道是什么原因导致了第一个代码中的这种情况。c(11265)
有两个元素<代码>1:1265
包含1265个元素。这就是问题所在吗?@Leon,在第一个for循环的末尾,i
的值是1264L
?这很奇怪。。。你有一些我们可以复制的示例代码吗?当它在1264停止时,你有没有收到任何错误消息?没有。它似乎在表中打印了与i=1264相同的值。该值应类似于0.133,但为1,等于1294 i的值。但这将由第二个代码进行调整。不知道为什么,但它是有效的。我只是想知道是什么原因导致了第一个代码中的这种情况。c(11265)
有两个元素<代码>1:1265
包含1265个元素。这就是问题所在吗?@Leon,在第一个for循环的末尾,i
的值是1264L
?这很奇怪。。。你有一些我们可以复制的示例代码吗?
structure(list(Datum = structure(c(17960, 17961, 17962, 17963,
17966, 17967), class = "Date"), `CoCo-Preis` = c(98.19, 98.14,
98.21, 97.97, 98.01, 98.03), `CDS-Spread` = c(55.67, 55.23, 55.64,
56.27, 55.05, 53.33), Aktienpreis = c(4.244, 4.3145, 4.163, 4.0785,
4.1375, 4.142), Zins = c(-0.287467, -0.31443, -0.360349, -0.351772,
-0.363637, -0.36096), t = c(1819L, 1820L, 1821L, 1822L, 1825L,
1826L)), row.names = 1260:1265, class = "data.frame")
yield.t.c <- uniroot(q2,c(-1,10),tol = .Machine$double.eps^0.5, extendInt = "yes")$root