为什么R持有修改excel文件的权限?

bos*_*hek 5 windows permissions excel r

我正在循环中读取一些excel数据到R中,因为我有一堆文件.这是我经常做的事情.我遇到了一些麻烦,我甚至不确定如何制作可重复的例子.所以我在一个目录中拥有了我想要的所有文件,并且我正在使用这组命令读取它们:

## Because I want warnings to stop the loop at a certain file so I can diagnose
options(warn=2)
xl_load_in <- c()
for (x in list.files(pattern="*\\.xls")) {
  cat(x, "\n ")
  u <- read_excel(x,col_types=c("text","text","numeric","numeric","numeric","numeric","numeric","numeric","numeric","numeric","numeric","numeric","text"))
  xl_load_in <- tbl_df(rbind(xl_load_in, u))
}
options(warn=0)
Run Code Online (Sandbox Code Playgroud)

因此,这既是读取文件的工具,也是使用warn切换,我可以诊断哪些文件没有正确读取.

现在的问题是:从重新启动,我可以重命名并保存目录中的excel文件.但是,如果我运行上面的R代码,我将失去保存或重命名循环中断的excel文件的权限(excel文件存在小问题,必须手动纠正).例如,如果我尝试重命名循环中断的文件,我会收到此窗口错误:

由于文件在RStudio R Session中打开,因此无法完成操作.

如果我重新启动,我可以再次修改有问题的文件.但在重新启动之前,我无法保存或重命名该文件.任何人都可以解释这种行为R或Rstudio似乎接管我的权限?

更新如果我关闭RStudio,则返回权限.如果我使用RGUI for Windows执行上述相同的命令序列,则表示问题的复制问题不是RStudio问题.

sessionInfo()

R version 3.3.2 (2016-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252    

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

other attached packages:
 [1] stringr_1.1.0   readxl_0.1.1    lubridate_1.6.0 dplyr_0.5.0     purrr_0.2.2     readr_1.0.0     tidyr_0.6.0     tibble_1.2     
 [9] ggplot2_2.2.0   tidyverse_1.0.0

loaded via a namespace (and not attached):
 [1] Rcpp_0.12.7      assertthat_0.1   R6_2.2.0         grid_3.3.2       plyr_1.8.4       DBI_0.5-1        gtable_0.2.0    
 [8] magrittr_1.5     scales_0.4.1     stringi_1.1.2    lazyeval_0.2.0   tools_3.3.2      munsell_0.4.3    colorspace_1.3-0
Run Code Online (Sandbox Code Playgroud)