2017-06-14 64 views
1

我正在生成大量数据,并且希望在我的运行过程中仅存储选定的值。但它总是保存最后的结果。例如,在下面的示例代码中,它总是存储满足条件的最后结果。请记住,我有大量数据,不想存储在矢量或列表中,但希望立即存储在文件中。我需要你的帮助。将数值数据保存到文件中

谢谢。

f<-function(x) (x-1)*(x-5)*(x-10) 

fileE<-file("E.txt") 
for (i in seq(1,100,0.1)){ 
    if (f(i) > 0 && f(i) < 10) 
     writeLines(paste0(i," ",f(i)), fileE) 
} 
close(fileE) 

回答

1

也许使用write与追加:

unlink("E.txt") 

for (i in seq(1, 100, 0.1)){ 
    res <- f(i) 
    if (res > 0 & res < 10) 
    write(x = paste0(i, " ", res), file = "E.txt", append = TRUE) 
    } 
+0

这工作,但如果我再次运行我的模拟将在以前的现有文件追加数据。我如何抹掉以前的数据并开始追加新的数据? – bell

+0

不,它仍会添加到以前的数据文件中,并且不会删除以前的内容。 – bell

+1

'unlink'文件在运行之间删除它。 (或者'if(i == 1)unlink(“E.txt”)'在你的循环中)。 – Gregor