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