gpt4 book ai didi

Rstudio 拥有 Excelfile 权限 - XLconnect

转载 作者:行者123 更新时间:2023-12-04 01:16:26 36 4
gpt4 key购买 nike

自从我昨天更新了 RStudio 以来,我无法让 Rstudio 放弃它对我的 excelfiles 的保留。
我尝试了以下方法无济于事:

  unlink(fileName, recursive = TRUE)
file.info(fileName)
file.remove(fileName)
file.info 提供以下内容:
size 2383465
isdir FALSE
mode 666
mtime 2020-08-06 11:02:03
ctime 2020-06-16 13:00:22
atime 2020-08-06 10:40:30
exe no
RStudio 由管理员安装,但我个人在我的组织中没有管理员权限。即使取消链接也不允许 file.remove (但它不是目录所以......)。而且我真的不想删除它,只需让 Rstudio 取消保留即可。该文件将在 Excel 中修改(并保存,这是不允许的,因为 RStudio 持有它)。
更新:
我想这是一个错误,所以到目前为止我所有的谷歌搜索都没有找到解决方案。我想可以解决这个问题的一种解决方法是,如果我可以以编程方式重新初始化 JVM 实例。 (例如, .rs.restartR() 删除文件上的 R:s 保留)
更新 2:
openxlsx-package 发生了完全相同的错误,它不依赖于 Java,因此问题可能出在 R 上。
R version 3.6.3 (2020-02-29)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18362)

Matrix products: default

locale:
[1] LC_COLLATE=Swedish_Finland.1252 LC_CTYPE=Swedish_Finland.1252 LC_MONETARY=Swedish_Finland.1252
[4] LC_NUMERIC=C LC_TIME=Swedish_Finland.1252
更新 3:
这里仍然没有突破,我已经用一些hacky-code解决了锁,但它至少解决了眼前的问题:
  .rs.restartR()
source("~/.Rprofile")
更新 4:
如果我这样做:
library(XLConnect)

wb <- loadWorkbook("Cars.xlsx", create = TRUE)
createSheet(wb, "Data")
writeWorksheet(wb, cars, "Data")
saveWorkbook(wb)
第一次打开文件时,我可以在不关闭 R session 的情况下进行保存。如果我这样做,打开 Excel 文件并保存,然后重新运行上面的代码,我的 R session 持有权限锁。所以它在文件保存的范围内有一些东西。
更新 5:
这现在是一个 Unresolved 问题,可能是仅限 Windows 的错误:
Github - XLconnect

最佳答案

XLconnect 中的以下函数调用清除 Java session :

xlcFreeMemory()
gc()本身没有用,但 xlcFreeMemory还运行下面的代码,我想这是达成交易的原因:
J("java.lang.Runtime")$getRuntime()$gc()

关于Rstudio 拥有 Excelfile 权限 - XLconnect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63279386/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com