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

时间:2016-12-02 21:27:57

标签: r excel windows permissions

我正在循环中读取一些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)

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

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

  

由于文件在RStudio R中处于打开状态,因此无法完成操作   会话。

如果我重新启动,我可以再次修改有问题的文件。但在重新启动之前,我无法保存或重命名该文件。任何人都可以解释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

0 个答案:

没有答案