当我在f中使用ffave时,我的* .ff文件有问题。
当我使用ffsave(fileName)
时,我会看到fileName.ffData
和fileName.RData
。
我的问题是:
*.ff
或使用ffsave
后,ffload(fileName)
是否在某处创建了? *.ff
个文件吗?*.ff
个文件的位置吗?任何人都可以教我使用ffsave
和ffload
删除*.ff
的正确方法,因为它们是大文件吗?感谢。
答案 0 :(得分:2)
回答问题3:我可以控制存储* .ff文件的位置吗?
ff文件默认保存在getOption("fftempdir")
中。您可以通过更改该选项来更改此选项
require(ff)
getOption("fftempdir")
[1] "/tmp/RtmpkneHQo"
options(fftempdir = "/home/janw")
x <- ff(1:10)
filename(x)
[1] "/home/janw/ff12153b63d8c1.ff"
list.files("/home/janw", pattern = ".ff")
[1] "ff12153b63d8c1.ff"
回答问题2:我看到它后可以删除* .ff文件吗?
当然你可以但是你可能会丢失你在R进程中使用的数据(每个ff对象都有一个.ff文件支持 - 所以如果删除那个文件,你就不再有数据了)。但是,如果您在某处拥有ffsaved
数据,则可以安全地删除.ff文件,因为您可以使用ffload
再次加载数据。请参阅问题1的答案。
对问题1的回答:当我使用ffsave或使用ffload(fileName)后,* .ff是否在某处创建? ü 在调用ffsave之前,.ff文件已经在磁盘上了。 ffsave所做的只是简单地压缩您指定要保存在目录中的指定对象的.ff文件。完成此操作后,您可以安全地删除.ff文件,因为您可以使用ffload重新加载它们。
ffsave(x, file = "/home/janw/mydata")
[1] " adding: home/janw/ff12153b63d8c1.ff (deflated 35%)"
list.files("/home/janw", pattern = ".ff$")
[1] "ff12153b63d8c1.ff"
list.files("/home/janw", pattern = "mydata")
[1] "mydata.ffData" "mydata.RData"
## Now what happens if we remove the .ff file of the x variable - it is no longer accessible
file.remove("/home/janw/ff12153b63d8c1.ff")
x[1:2]
opening ff /home/janw/ff12153b63d8c1.ff
Error: file.access(filename, 0) == 0 is not TRUE
## And we are ffloading the data back
ffload("/home/janw/mydata", overwrite=TRUE)
[1] "home/janw/ff12153b63d8c1.ff"
## Waw, it is back!
list.files("/home/janw", pattern = ".ff$")
[1] "ff12153b63d8c1.ff"
## And we can access it again.
x[1:2]
opening ff /home/janw/ff12153b63d8c1.ff
[1] 1 2
当ffsaving时,你将有一个扩展名为.ffData的文件和一个带有.RData的文件。 .ffData文件包含原始.ff文件,.RData文件包含虚拟部分(因素级别,例如原始.ff文件的链接)