packrat破坏R功能的麻烦

时间:2015-09-01 19:00:22

标签: r package rstudio packrat

我在某个时候安装了包packrat,也许曾经使用过一次,继续我的生活。

然而,尽管没有在几个月内加载它,但它对我的常规R使用仍然是一个麻烦。

看似随机,我在RStudio中的R会话将在某些操作中失败并出现错误,尤其是包安装。这是最新的错误消息(在运行parallel::makeCluster(parallel::detectCores())之后:

  

file(filename, "r", encoding = encoding)出错:无法打开   连接

     

通话:来源 - >文件

     

另外:警告信息:

     

在   file(filename, "r", encoding = encoding):无法打开文件   'packrat / init.R':没有这样的文件或目录

     

执行暂停

我检查了.libPaths()上的所有文件夹,我甚至没有安装packrat。为什么R仍在尝试执行packrat操作?我怎么能阻止这个?

到目前为止,我的管道胶带解决方案是简单地关闭并重新打开RStudio,它就像包装安装问题的魅力一样。

但是,我似乎无法在{em>只有一个 makeCluster(detectCores())脚本中为.R解决这个问题。它在另一个项目的另一个脚本中完美地运行。

背景:

sessionInfo()
# R version 3.2.2 (2015-08-14)
# Platform: x86_64-pc-linux-gnu (64-bit)
# Running under: Ubuntu 14.04.2 LTS

# locale:
#  [1] LC_CTYPE=en_US.UTF-8          LC_NUMERIC=C                  LC_TIME=en_US.UTF-8          
#  [4] LC_COLLATE=en_US.UTF-8        LC_MONETARY=en_US.UTF-8       LC_MESSAGES=en_US.UTF-8      
#  [7] LC_PAPER=en_US.UTF-8          LC_NAME=en_US.UTF-8           LC_ADDRESS=en_US.UTF-8       
# [10] LC_TELEPHONE=en_US.UTF-8      LC_MEASUREMENT=en_US.UTF-8    LC_IDENTIFICATION=en_US.UTF-8

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

# other attached packages:
#  [1] doParallel_1.0.8 iterators_1.0.7  foreach_1.4.2    geosphere_1.4-3  xlsx_0.5.7       xlsxjars_0.6.1  
#  [7] rJava_0.9-6      xtable_1.7-4     sandwich_2.3-3   texreg_1.35      maptools_0.8-36  sp_1.1-1        
# [13] ggmap_2.5.2      ggplot2_1.0.1    data.table_1.9.5

# loaded via a namespace (and not attached):
#  [1] Rcpp_0.11.6         plyr_1.8.3          tools_3.2.2         digest_0.6.8        gtable_0.1.2       
#  [6] lattice_0.20-33     png_0.1-7           mapproj_1.2-4       proto_0.3-10        stringr_1.0.0      
# [11] RgoogleMaps_1.2.0.7 maps_2.3-11         grid_3.2.2          jpeg_0.1-8          foreign_0.8-66     
# [16] RJSONIO_1.3-0       reshape2_1.4.1      magrittr_1.5        codetools_0.2-11    scales_0.2.5       
# [21] MASS_7.3-43         colorspace_1.2-6    stringi_0.5-9003    munsell_0.4.2       chron_2.3-47       
# [26] rjson_0.2.15        zoo_1.7-12 

更新1:

安装packrat无效。在完成之前运行packrat::init()会导致错误;没有改变。

更新2:

我通过确定它是导致问题的工作目录来隔离问题。我正在使用的工作目录中的内容可能会导致问题?之前在此目录中运行packrat的某些残留文件?

2 个答案:

答案 0 :(得分:4)

通过@BondedDust的刺激进一步试验和错误我终于似乎已经解决了这个问题。之前尝试在我工作的特定工作目录中使用packrat似乎留下了一些痕迹,尽管后来卸载了packrat

特别是packrat edits your local .Rprofile(归功于@zerweck和@snaut的原始信用),在该目录的R startup上为source() d。

如果您使用.Rprofile存储一些本地配置,则应编辑该文件并删除packrat行(或任何您无法识别的行);否则,您应该删除该文件以将项目恢复为按预期工作。

答案 1 :(得分:1)

检查您的HOME目录中是否存在意外的.Rprofile。

如果您尝试将HOME中的packrat :: init()打包,Packrat可能会将其放在此处。

带有packrat的

install.package()在运行时会查找.Rprofile。我观察到的行为使HOME .Rprofile优先于getwd()一个,从而导致

cannot open file 'packrat/init.R': No such file or directory