我正在运行以下循环。
第一个循环是这样:
cliff = function(a, b, c, d, x0, y0, n){
tab = data.frame(NA, nrow = n+1, ncol = 2)
colnames(tab) = c("x", "y")
tab[1,1:2] = c(x0, y0)
for(i in 1:n){
i = i + 1
tab[i,1] = sin(a*tab[(i-1),2]) + c*cos(a*tab[(i-1),1])
tab[i,2] = sin(b*tab[(i-1),1]) + d*cos(b*tab[(i-1),2])
}
return(round(tab[,1:2], 3))
}
这只是我在此递归操作中运行的一个循环(我知道这不是最好的),该循环从先前的循环中生成新的x和y值。我主要关心的是这个循环:
val = c(10,100,1000,10000,100000)
tab2 = data.frame(n = rep(NA, length(val)), Time = rep(NA, length(val)))
i = 1
for(n in val){
sT = Sys.time()
cliff(a = 1, b = 1, c = 2, d = 3, x0 = 0, y0 = 0, n)
cat()
eT = Sys.time()
mytime = eT - sT
if(attributes(mytime)$units == "mins"){
tab2$Time[i] = mytime*60
} else{
tab2$Time[i] = mytime
}
tab2$n[i] = n;
i = i + 1
}
tab2
因为此循环要花20分钟才能运行,所以我运行了一次以将tab2保存为数据帧,以便将来使用。但是,当我尝试编织pdf时,出现以下错误:
Error in eval(expr, envir, enclos) : object 'tab2' not found
为什么会这样?当我签入存储的对象时,它就在那里,当我使用exists("tab2")
时,我得到TRUE。那么为什么RMarkdown会说这不存在?