在努力解决另一个问题时,我遇到了这个问题:
我可以删除所有R对象:
rm(list = ls(all = TRUE))
Run Code Online (Sandbox Code Playgroud)
在工作会话期间是否有可以分离已安装软件包的等效命令?
> sessionInfo()
R version 2.12.2 (2011-02-25)
Platform: i386-pc-mingw32/i386 (32-bit)
locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
Run Code Online (Sandbox Code Playgroud)
需要(GGPLOT2)
Loading required package: ggplot2
Loading required package: reshape
Loading required package: plyr
Attaching package: 'reshape'
The following object(s) are masked from 'package:plyr':
round_any
Loading required package: grid
Loading required package: proto
Run Code Online (Sandbox Code Playgroud)
sessionInfo()
R version 2.12.2 (2011-02-25) …Run Code Online (Sandbox Code Playgroud) 来自哈德利的C最佳实践:
与C++一样,无论何时在包中使用C代码,都应该在卸载包时卸载DLL:
.onUnload <- function (libpath) {
library.dynam.unload("mypackage", libpath)
}
Run Code Online (Sandbox Code Playgroud)
另一方面,写R扩展甚至没有提到这一点.我可以看到卸载dll是多么礼貌,但这样做似乎会导致一些奇怪的问题,包括加载/卸载/重新加载的包(参见下面的示例).此外,还有一些提及建议可能不需要卸货.来自?library.dynam:
请注意,是否可以卸载DLL然后重新加载同一文件的修订版本取决于操作系统:请参阅dyn.unload帮助的"值"部分.
虽然这不应该影响未修改的对象.然后是来自R-devel的Brian Ripley的评论:
说了这么多,我的经验是,如果你需要再次加载它,卸载DLL通常没有帮助(这就是为什么例如tcltk不卸载它的DLL).
那么加载C库是否可以接受?我宁愿不必深入研究为什么会发生以下情况(在我开始卸载库之前没有发生).
R version 3.1.1 (2014-07-10)
Platform: x86_64-apple-darwin13.1.0 (64-bit)
> library(alike) # install_github("brodieg/alike", ref="fdaa578e"), if you're curious
> library(data.table)
data.table 1.9.2 For help type: help("data.table")
> detach("package:data.table", unload=T)
> detach("package:alike", unload=T)
> library(alike)
> library(data.table)
Error : .onLoad failed in loadNamespace() for 'data.table', details:
call: address(x)
error: object 'Caddress' not found
In addition: Warning messages:
1: In FUN(X[[9L]], …Run Code Online (Sandbox Code Playgroud) 这是一个非常小的问题,但我想了解到底发生了什么.
说我做以下事情:
library(RMySQL)
con <- dbConnect(MySQL(), host="some.server.us-east-1.rds.amazonaws.com",user="aUser", password="password", dbname="mydb")
values1 <- dbGetQuery(con,"select x,y from table1")
attach(values1)
Run Code Online (Sandbox Code Playgroud)
此时,我可以做到
rm(list=ls())
values2 <- dbGetQuery("select x,y from table1")
attach(values2)
Run Code Online (Sandbox Code Playgroud)
但附件给了我关于屏蔽x和y的警告.我以为我已经破坏了那些.到底是怎么回事?如何彻底清除工作区?
受到这个答案的启发,我正在寻找一种方法来同时分离几个包.
当我加载说Hmisc,
# install.packages("Hmisc", dependencies = TRUE)
require(Hmisc)
Run Code Online (Sandbox Code Playgroud)
R也加载survival和splines.我的问题是,是否有办法将该组一起卸载?
我现在做这样的事,
detach(package:Hmisc, unload = T)
detach(package:survival, unload = T)
detach(package:splines, unload = T)
Run Code Online (Sandbox Code Playgroud)
我试过了,
detach(package:c('Hmisc', 'survival', 'splines'), unload = T)
Run Code Online (Sandbox Code Playgroud)
...
可能重复:
如何在不重新启动R的情况下卸载软件包?
要将包装入R,我们可以去library(.)或require(.).如何在编码会话期间禁用包.我想要一些与之相反的东西require(.).
我已经使用以下函数通过 sf 多边形剪辑栅格至少一年了,没有任何问题,但自从更新到 R 4.0.3 和最近的 rgdal 更新以来,我开始遇到麻烦。当我第一次运行 Clip 时,出现错误,指出 x$.self$finalize())() 并且函数失败。在我再次运行它或重新加载光栅包后,它似乎可以工作。这是之前通过 raster 和 sp 提出的。在这种情况下,问题似乎相关,请参见下文:我留下了通常在脚本中加载的附加库,以防它们与问题相关。
library(raster)
library(EBImage)
library(sf)
library(stars)
library(reticulate)
library(fitdistrplus)
measure <- import("skimage.measure")
clip<-function(x,shape) {
# Arguments:
# x: Input raster
# shape: polygon (in same projection)
# Returns:
# clipped raster
#######
return(crop(mask(x, shape), shape))
}
## polygon w/ single feature
shoreline <- st_read("shoreline_FULL.shp")
## Load channel network mask
DCN <- raster("2000_07_channel_clean.tif")
DCNt <- t(as.matrix(DCN))
Run Code Online (Sandbox Code Playgroud)
然后运行剪辑时:
> DCN <- clip(DCN, shoreline)
Error in (function (x) …Run Code Online (Sandbox Code Playgroud) 我试图在R中安装一个包,但无法解决以下错误.
到底是怎么回事?:(
我正在运行Fedora 20,R 3.2
biocLite("monocle")
BioC_mirror: http://bioconductor.org
Using Bioconductor version 3.0 (BiocInstaller 1.16.5), R version 3.2.0.
Installing package(s) 'monocle'
trying URL 'http://bioconductor.org/packages/3.0/bioc/src/contrib/monocle_1.0.0.tar.gz'
Content type 'application/x-gzip' length 332309 bytes (324 KB)
downloaded 324 KB
installing *source* package ‘monocle’ ...
R
inst
preparing package for lazy loading
Error in unloadNamespace(package) :
namespace ‘plyr’ is imported by ‘reshape2’, ‘ggplot2’, ‘scales’ so cannot be unloaded
Error in library(pkg, character.only = TRUE, logical.return = TRUE, lib.loc = lib.loc) :
Package ‘plyr’ version 1.8.1 cannot …Run Code Online (Sandbox Code Playgroud) 我可以卸载和删除包而不必重新启动已经需要/加载包的 R 进程吗?
我看过这个问题/答案,但它只处理部分问题(卸载)
我想这样做的原因是我正在开发一个基于项目的包开发框架,其中我还使用基于项目的包库以保持标准库“干净”并允许对包进行系统测试依赖关系。
唯一的问题是,用户在初始化项目之前很难记住基于项目的包库的路径(它还通过加载所有指定的包依赖项require()并使基于项目的库成为第一个.libPaths())
实际上,这意味着用户目前无法以一种舒适的方式(即在初始化项目之后)从基于项目的包库中真正卸载包依赖项,我正在寻找改变这一点的方法。
install.packages("forecast")
require("forecast")
detach("package:forecast", unload=TRUE)
remove.packages("forecast")
> install.packages("forecast")
Warning: unable to access index for repository http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/2.15
trying URL 'http://cran.rstudio.com/bin/windows/contrib/2.15/forecast_4.03.zip'
Content type 'application/zip' length 1124001 bytes (1.1 Mb)
opened URL
downloaded 1.1 Mb
package 'forecast' successfully unpacked and MD5 sums checked
Warning: cannot remove prior installation of package 'forecast'
The downloaded binary packages are …Run Code Online (Sandbox Code Playgroud) 您好,我是 R 和这个论坛的新手。\n我遇到了与之前的发帖者相同的问题,但我的问题没有得到解决。当我尝试使用包 lme4 和中介运行多级中介模型时,我收到消息:“中介模型尚未实现”。
\n\n我的数据:
\n\ndata.frame\': 25383 obs. of 115 variables:\n$ PID : num 1 1 1 1 1 1 1 1 1 1 ...\n$ T0_AGE : num 66.6 79.7 85.6 87 79.9 67.4 80 72 80.1 \n68$ T0_ASEXE : Factor w/ 2 levels "Male","Female": 1 1...\n$ T0_ALIVING_R : num 0 0 0 0 1 0 0 0 1 0 ...\n$ T0_educationcat : Factor w/ 3 levels "high","middle",..\n$ FI_morbidity_corrected : num 0.0625 0 0.125 0.0625 …Run Code Online (Sandbox Code Playgroud)