Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在R for循环中使用向量和“1”时会出现不等式:&引用;?_R_Loops_For Loop_Variables_Undefined - Fatal编程技术网

为什么在R for循环中使用向量和“1”时会出现不等式:&引用;?

为什么在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

我没有真正的问题,但由于不同的编写方案,我的代码没有太大的差异

情况如下:

我编写了一个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[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