在R中停止计算;到那时我会失去结果吗?
我正在一个大数据集上运行一些矩阵代数。最外层循环的每次迭代填充分配给64797行的两个不同向量中的一行。我在屏幕上打印一个计数器,以便外部循环检查进度。这可能并不理想。根据TaskManager的说法,R仍然在工作,并且使用了大量内存和处理器。但是,R控制台没有响应,我只能在末尾读取至少到31000ish行(有滚动空间,但我无法向下滚动查看打印的最后一个数字)。我不知道程序是否“挂起”(不再迭代外循环),我是在浪费时间等待,还是应该坚持下去。这台机器已经运转了几天了。给定程序的结构,我可以结束进程并从最后一行重新启动。然而,如果我结束这个过程,我会丢失我正在填充的向量中以前分配的数据吗?那太糟糕了,因为我得从头开始。下面是代码。最终目标是名为save.trace和save.trace2的向量在R中停止计算;到那时我会失去结果吗?,r,R,我正在一个大数据集上运行一些矩阵代数。最外层循环的每次迭代填充分配给64797行的两个不同向量中的一行。我在屏幕上打印一个计数器,以便外部循环检查进度。这可能并不理想。根据TaskManager的说法,R仍然在工作,并且使用了大量内存和处理器。但是,R控制台没有响应,我只能在末尾读取至少到31000ish行(有滚动空间,但我无法向下滚动查看打印的最后一个数字)。我不知道程序是否“挂起”(不再迭代外循环),我是在浪费时间等待,还是应该坚持下去。这台机器已经运转了几天了。给定程序的结构,我可以结束进
for (i in 1:nrow(coor.cal)){
print(i)
for (j in 1:nrow(coor.cal)){
dist<-( (coor.cal[i,1]-coor.cal[j,1])^2 + (coor.cal[i,2]-coor.cal[j,2])^2)^.5
#finding distances between observations
w[j]<-exp(-0.5*((dist/bw)^2))#computing weight matrix for observation i
if (dist>bw){w[j]<-0}
}
for (k in 1:27){
xv<-xmat[ ,k]
xtw[k, ]<-xv*w
}
xtwx<-xtw%*%xmat
xtwx.inv<-ginv(xtwx)
xtwx.inv.xtw<-xtwx.inv%*%xtw
xrow<-xmat[i, ]
temp<-xrow%*%xtwx.inv.xtw
save.trace[i]<-temp[i]
save.trace2[i]<-sum(temp*temp)
}
for(1中的i:nrow(coor.cal)){
印刷品(一)
适用于(j in 1:nrow(coor.cal)){
dist我没有足够的内存去冒险做实验来回答我的问题。我只是借用了另一台机器,尝试了它,事实上你可以结束一个进程,仍然保留以前存储的信息。我以前没有遇到过这个问题。我试图删除我的问题,但无法。我会留下这个,以防它对其他人有帮助。这里有一个更好的例子
saved <- 0
for(i in 1:100)
{
saved <- i
Sys.sleep(0.1)
}
保存了这与CRAN有什么关系?@mdsummer:是的,这很奇怪/误导。我已经从问题中删除了它。