如何加载r5r创建的网络?加载失败报错求助
解决r5r网络对象无法用load()加载的问题
问题情况
用r5r包的setup_r5()创建网络后,为了避免重复生成(耗时较长),尝试用load()、source()或手动点击加载按钮导入已生成的网络文件,但均失败。使用load()时出现如下报错:
mauvais numéro magique de restauration de fichier (le fichier est peut être corrompu) -- aucune donnée chargée
De plus : Message d'avis :
file ‘network.dat’ has magic number 'R5NET'
Use of save versions prior to 2 is deprecated
创建网络的代码:
r5r_core <- setup_r5(data_path = "Data/", elevation = "NONE", verbose = TRUE, overwrite = TRUE)
原因
setup_r5()生成的r5r_core是Java环境中的R5引擎对象,并非普通的R数据对象,常规的save()/load()方法不支持这类对象的保存与加载。报错里提到的network.dat是R5引擎运行时生成的内部文件,不能直接用R的load()读取。
正确解决方案
使用r5r包自带的专用函数来保存和加载网络对象:
1. 保存网络对象
创建好r5r_core后,用save_r5()函数将其保存为RDS格式文件:
save_r5(r5r_core, file_path = "Data/r5r_network.rds")
2. 加载网络对象
后续需要使用时,通过read_r5()加载保存好的RDS文件:
r5r_core <- read_r5(file_path = "Data/r5r_network.rds")
注意事项
- 必须使用r5r提供的
save_r5()和read_r5(),不要尝试手动处理setup_r5()生成的中间文件(如network.dat)。 - 保存路径可根据自己的需求调整,确保文件路径正确。
内容的提问来源于stack exchange,提问作者Random_kitty
相关产品推荐
相关产品推荐

