保存 R 项目时的压缩问题

发布于 2024-10-19 19:14:54 字数 2362 浏览 5 评论 0原文

我通过将R安装目录移出C盘解决了这个问题。感谢Joris的出色建议!我认为R核心团队也应该将此视为一个bug,针对windows xp的保护机制做一些事情。

亲爱的社区:

在 R 中使用 BIOMOD 包时,我总是遇到以下问题:

xzfile(file, "wb", compression = 9) 中的错误:无法打开连接 另外:警告消息: 在 xzfile(文件, "wb", 压缩 = 9) 中: 无法初始化lzma编码器,错误5

包的作者以及“save”的帮助文件中都说,该问题应该是由于缺乏写入权限而引起的。但是,由于我以管理帐户登录并对所有操作进行了评估,所以我不知道问题是什么。有人可以帮我吗?我现在确实需要运行该包。先谢谢了~

真诚的, Marco

下面是“保存”帮助文件中的说明:

失败的最常见原因是缺少写入权限 当前目录。用于“save.image”并在最后保存 这将通过以下消息显示:

    Error in gzfile(file, "wb") : unable to open connection
     In addition: Warning message:
     In gzfile(file, "wb") :
       cannot open compressed file '.RDataTmp',
       probable reason 'Permission denied'
 The defaults were changed to use compressed saves for 'save' in
 2.3.0 and for 'save.image' in 2.4.0.  Any recent version of R can
 read compressed save files, and a compressed file can be
 uncompressed (by 'gzip -d') for use with very old versions of R.*

抱歉,遗漏了信息: 这是 sessionInfo():

> sessionInfo()
R version 2.12.2 (2011-02-25)
Platform: i386-pc-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=Chinese_People's Republic of China.936 
[2] LC_CTYPE=Chinese_People's Republic of China.936   
[3] LC_MONETARY=Chinese_People's Republic of China.936
[4] LC_NUMERIC=C                                      
[5] LC_TIME=Chinese_People's Republic of China.936    

attached base packages:
[1] splines   stats     graphics  grDevices utils     datasets  methods  
[8] base     

other attached packages:
 [1] BIOMOD_1.1-6.8     foreign_0.8-42     gam_1.04          
 [4] randomForest_4.6-2 mda_0.4-1          class_7.3-3       
 [7] gbm_1.6-3.1        lattice_0.19-17    MASS_7.3-11       
[10] Design_2.3-0       Hmisc_3.8-3        survival_2.36-5   
[13] rpart_3.1-48       nnet_7.3-1         ade4_1.4-16       
[16] rgdal_0.6-33       dismo_0.5-19       rJava_0.9-0       
[19] raster_1.7-47      sp_0.9-78         

    loaded via a namespace (and not attached):
    [1] cluster_1.13.3 grid_2.12.2    tools_2.12.2 

现在我发现问题来自 lzma 编码器在执行“保存”时:

>  x<-runif(100)
>  save(x, file = "F:/test.gzip", compress='gzip')
>  save(x, file = "F:/test.xz", compress='xz')
Error in xzfile(file, "wb", compression = 9) : cannot open the connection
> 

I solved the problem by moving R installation directory out of disk C. Thanks Joris for the great suggestions! I think the R core team should also take this as a bug and do something against the protecting mechanism of windows xp.

Dear Community:

While using the BIOMOD packages in R, I always get the following problem:

Error in xzfile(file, "wb", compression = 9) : cannot open the connection
In addition: Warning message:
In xzfile(file, "wb", compression = 9) :
cannot initialize lzma encoder, error 5

It was said by the author of the package and also in the help file of "save" that the problem should be caused by lack of permission to write. However, as I am logging in as administative account and have assess to all operations, I have no idea what the problem is. Can anybody help me out? I really need to run the package now. Thanks in advance~

Sincerely,
Marco

Below is the illustration in the help file of "save":

The most common reason for failure is lack of write permission in
the current directory. For 'save.image' and for saving at the end
of a session this will shown by messages like

    Error in gzfile(file, "wb") : unable to open connection
     In addition: Warning message:
     In gzfile(file, "wb") :
       cannot open compressed file '.RDataTmp',
       probable reason 'Permission denied'
 The defaults were changed to use compressed saves for 'save' in
 2.3.0 and for 'save.image' in 2.4.0.  Any recent version of R can
 read compressed save files, and a compressed file can be
 uncompressed (by 'gzip -d') for use with very old versions of R.*

Sorry for the ommision of the information:
Here is the sessionInfo():

> sessionInfo()
R version 2.12.2 (2011-02-25)
Platform: i386-pc-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=Chinese_People's Republic of China.936 
[2] LC_CTYPE=Chinese_People's Republic of China.936   
[3] LC_MONETARY=Chinese_People's Republic of China.936
[4] LC_NUMERIC=C                                      
[5] LC_TIME=Chinese_People's Republic of China.936    

attached base packages:
[1] splines   stats     graphics  grDevices utils     datasets  methods  
[8] base     

other attached packages:
 [1] BIOMOD_1.1-6.8     foreign_0.8-42     gam_1.04          
 [4] randomForest_4.6-2 mda_0.4-1          class_7.3-3       
 [7] gbm_1.6-3.1        lattice_0.19-17    MASS_7.3-11       
[10] Design_2.3-0       Hmisc_3.8-3        survival_2.36-5   
[13] rpart_3.1-48       nnet_7.3-1         ade4_1.4-16       
[16] rgdal_0.6-33       dismo_0.5-19       rJava_0.9-0       
[19] raster_1.7-47      sp_0.9-78         

    loaded via a namespace (and not attached):
    [1] cluster_1.13.3 grid_2.12.2    tools_2.12.2 

Now I found that the problem come form the lzma encoder in doing "save":

>  x<-runif(100)
>  save(x, file = "F:/test.gzip", compress='gzip')
>  save(x, file = "F:/test.xz", compress='xz')
Error in xzfile(file, "wb", compression = 9) : cannot open the connection
> 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

平定天下 2024-10-26 19:14:54

使用 8 个模型运行建模过程后,在尝试投影到新场景(包含与预测变量对应的列的表)时,我遇到了类似的问题。

第一个表(大约 250,000 行)运行良好,我能够将结果保存为 .csv 文件。然而,第二个(大约 380,000 行)导致了上述错误消息,并且某些文件未写入项目文件夹。

此后,我已将所有表减少到最多 260,000 行,并且不再收到错误消息。在多次运行中执行此操作有点痛苦,但是一旦我编写了一次脚本,我只需在 MS Word 中使用查找和替换即可在每次运行时更改它。

I had a similar issue when trying to project to a new scenario (a tables containing columns corresponding to the predictor variables) after having run the modeling procedure using 8 models.

The first table (approx 250,000 rows) ran fine, and I was able to save the results as a .csv file. However the second one (approx 380,000 rows) resulted in the above error message, and some of the files were not written to the project folder.

I have since cut all the tables down to a maximum of 260,000 rows and I no longer recieve the error message. It was a bit of a pain doing it in multiple runs, but once I had written the script once, I just used find and replace in MS Word to change it for each run.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文