我使用CNSet
包创建了crlmm
包创建的ff
对象。
我将其保存为RData
文件(使用save
功能,而不是ffsave
)。然后我不得不将我的ff
文件移到另一个位置。然后我尝试使用load
函数加载对象。但是当我访问对象的一部分时,我收到的错误是原始位置中的ff
文件无法找到。
我使用ldPath
功能设置新位置,但它仍然在寻找旧路径。
示例:
library(ff)
ldPath('/new_location')
load('object.RData')
summary(g)
#Works, print:
#Length Class Mode
#1 CNSet S4
calls(g)[1]
#Raises the next error:
打开ff /old/location/calld49920a2df79.ff
错误:file.access(filename,0)== 0不为TRUE
physical(x)
NULL
任何帮助将不胜感激。
答案 0 :(得分:0)
您可以使用ff
指定x
对象physical(x) <- 'my_file.ff'
的文件路径。例如:
library(ff)
old <- file.path(tempdir(), 'old.ff') # this will be the original file path
new <- file.path(tempdir(), 'new.ff') # this will be the new file path
x <- ff(1:4, filename=old) # create the original ff file
save(x, file = file.path(tempdir(), 'x.rda')) # save the ff object
close(x) # close the ff object
file.rename(old, new) # rename the file
file.remove(old) # delete the old file
load(file.path(tempdir(), 'x.rda')) # load the ff object
physical(x)$filename <- new # assign the new file path
head(x)
## opening ff C:\Users\John\AppData\Local\Temp\Rtmp2ZEkgw/new.ff
## [1] 1 2 3 4