R 不使用ffload创建副本

R 不使用ffload创建副本,r,copy,bigdata,ffbase,R,Copy,Bigdata,Ffbase,我有一个关于ff包中的函数属性的问题。 在我要加载的特定目录中有一个ff对象。这就是我正在使用的: setwd(~/Documents/Data) ffload("Object", overwrite=TRUE) 如果OVERWRITE=TRUE,则对象的副本将保存在tmp文件夹中,并且对象将从此目录加载: [1] "tmp/Rtmpsj1b2f/clone11876c2c0949.ff" 但是,如果您不想要对象的副本,则需要将FALSE设置为覆盖。如果是第一次加载ff对象,即使overwr

我有一个关于ff包中的函数属性的问题。 在我要加载的特定目录中有一个ff对象。这就是我正在使用的:

setwd(~/Documents/Data)
ffload("Object", overwrite=TRUE)
如果OVERWRITE=TRUE,则对象的副本将保存在tmp文件夹中,并且对象将从此目录加载:

[1] "tmp/Rtmpsj1b2f/clone11876c2c0949.ff"
但是,如果您不想要对象的副本,则需要将FALSE设置为覆盖。如果是第一次加载ff对象,即使overwrite=FALSE,它也会在tmp文件夹中创建副本!然后我删除了副本,第二次重新加载对象,我收到了以下消息,但没有副本:

Warning :
In FUN("Obs_zone_212_19700801_19750731"[[1L]], ...) :
did not overwrite object 'Obs_zone_212_19700801_19750731'

问题是我正在处理很多大文件,我不想创建副本!我能做些什么?

也许最好为您的案例解释一下
ffload

在~/Documents/Data目录中有2个文件。一个名为
Object
,另一个名为
Object.ffData
Object.ffData
包含带有原始数据的ff文件<代码>对象包含一个R工作区,该工作区具有ff文件的虚拟属性(例如指向ff文件的指针等级别),根据您的数据结构,该工作区只有几Kb

ffload将
Object.ffData
中包含的ff文件解压缩到创建ff文件的文件夹中(请参见
getOption(“fftempdir”)
-对于您的情况,这是在tmp/Rtmpsj1b2f文件夹中。如果您将
rootpath
参数指定为ffload,您可以将ff文件解压缩到另一个目录。如
ffload(“Object”,overwrite=TRUE,rootpath=“/home/myname/myfolder”)
。ffload的overwrite参数表示,如果要解压缩的ff文件已存在于该目录中,它将覆盖该文件。到目前为止,ff部分

当使用ffload加载文件时,您也在R会话中加载虚拟部分。对于您的情况,这是一个您命名为
Obs\u zone\u 212\u 19700801\u 19750731
(请参见
ls()
)的对象。您看到的警告是,在ffload新数据时,它不会覆盖此对象。因此您需要
rm(Obs_zone_212_19700801_19750731)
在卸载前清除警告

希望这有帮助。
如果您的数据是ffdf对象,您还可以查看package
ffbase
中的
save.ffdf
。这不会压缩您的数据,而是将其直接保存在磁盘上。

谢谢您的回答!事实上,我的问题来自ffsave。在加载ff对象之前,我使用ffsave创建了它们。当我使用ffsave时,它将创建Object.RData和Object.ffdata位于我选择的目录中,另一个文件夹位于tmp中(Rtmpsj1b2f文件夹)。如果我不想拥有最后一个文件夹,我需要在ffsave中添加我想要的根路径?在创建ff对象之前,您应该设置fftempdir文件夹,然后再将ff对象添加到您希望ff文件所在的文件夹中。选项(fftempdir=“path/to/your/folder”)好的!当我添加它时,我有一个错误:无法打开文件“/tmp/RtmpBHIZfb/file1a8256d52308”:没有这样的文件。似乎即使我请求一个特定的文件夹,它也不起作用。在创建ff对象之前,您需要设置fftempdir