首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R脚本文件中使用较早版本的ggplot

在R脚本文件中使用较早版本的ggplot
EN

Stack Overflow用户
提问于 2022-11-28 00:12:12
回答 2查看 60关注 0票数 0

我在Ubuntu22.04上安装了ggplot2 3.4.0,但出于某些原因,我想使用旧版本的ggplot2 3.3.6。

代码语言:javascript
复制
library(ggplot2, lib.loc="~/R/ggplot336/") 

当我开始使用一个干净的脚本文件时,我工作得很好。但是,当我使用现有脚本文件时,如下所示:

代码语言:javascript
复制
library(ggplot2, lib.loc="~/R/ggplot336/") 
ggimage::geom_image()

我得到了以下错误信息:

value3L中的错误:包‘ggplot2’版本3.4.0无法卸载:unloadNamespace中的错误(包):名称空间‘ggplot2’是由‘is value3L’、‘ggplotify’、‘ggimage’导入的,因此不能卸载

编辑

  1. Rstudio
  2. 用以下3行打开我的R脚本文件:

代码语言:javascript
复制
sessionInfo()
library(ggplot2, lib.loc="~/R/ggplot336/") 
ggimage::geom_image()

当我运行第一行时,在执行其他任何操作之前都是sessionInfo()。我们可以在那里看到ggplot2_3.4.0。这是一个Rstudio特性还是一个问题?

代码语言:javascript
复制
R version 4.2.2 Patched (2022-11-10 r83330)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 22.04.1 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.10.0
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.10.0

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

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

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.9         highr_0.9          pillar_1.8.1       compiler_4.2.2    
 [5] R.utils_2.12.2     R.methodsS3_1.8.2  yulab.utils_0.0.5  tools_4.2.2       
 [9] digest_0.6.30      evaluate_0.18      jsonlite_1.8.3     lifecycle_1.0.3   
[13] tibble_3.1.8       gtable_0.3.1       ggimage_0.3.1      R.cache_0.16.0    
[17] pkgconfig_2.0.3    rlang_1.0.6        reprex_2.0.2       DBI_1.1.3         
[21] cli_3.4.1          ggplotify_0.1.0    rstudioapi_0.14    magick_2.7.3      
[25] yaml_2.3.6         xfun_0.35          fastmap_1.1.0      knitr_1.41        
[29] withr_2.5.0        dplyr_1.0.10       styler_1.8.1       generics_0.1.3    
[33] vctrs_0.5.1        fs_1.5.2           gridGraphics_0.5-1 grid_4.2.2        
[37] tidyselect_1.2.0   glue_1.6.2         R6_2.5.1           processx_3.8.0    
[41] fansi_1.0.3        rmarkdown_2.18     clipr_0.8.0        callr_3.7.3       
[45] ggplot2_3.4.0      purrr_0.3.5        magrittr_2.0.3     ps_1.7.2          
[49] htmltools_0.5.3    scales_1.2.1       assertthat_0.2.1   colorspace_2.0-3  
[53] utf8_1.2.2         munsell_0.5.0      ggfun_0.0.9        R.oo_1.25.0       
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-29 00:24:33

在做了一些实验之后,我就算出了这个问题。因为这占用了我太多的时间,我想这会对其他人有所帮助。

问题是使用:: (双冒号)的包使用ggplot2,例如我的示例中的ggimage。在打开脚本文件时,RStudio似乎会自动加载一些依赖的包。现在解决此问题的一种方法是删除::,而是使用library()然后函数(geom_image)。

这解决了我的问题,但我仍然不明白为什么RStudio会这样做。

如果需要:: (双冒号),请注释包含::的行,然后在加载旧版本的ggplot2之后,取消对这些行的注释。有点尴尬,但对我有用。

票数 0
EN

Stack Overflow用户

发布于 2022-11-28 22:49:59

看起来session正在从前一个会话中加载所有以前的库。也许是.RData或.Rhistory里遗留下来的东西。一个新的R的开始应该有非常少的加载库。

这是我的新开始:

代码语言:javascript
复制
sessionInfo()
R version 4.2.2 (2022-10-31)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Monterey 12.6.1

Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.2/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

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

loaded via a namespace (and not attached):
[1] compiler_4.2.2 tools_4.2.2  

在Rstudio的首选项中,您应该看到这个屏幕:

我会尝试取消检查所有的框,然后退出并重新启动Rstudio,以确定这是否清除了问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74594798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档