相关疑难解决方法(0)

在R工作时分离所有包裹

在努力解决另一个问题时,我遇到了这个问题:

我可以删除所有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)

workspace r

87
推荐指数
5
解决办法
6万
查看次数

必须R包卸载时卸载动态库吗?

来自哈德利的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)

c dll packages r

46
推荐指数
1
解决办法
1686
查看次数

rm(list = ls())不能完全清除工作区

这是一个非常小的问题,但我想了解到底发生了什么.

说我做以下事情:

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的警告.我以为我已经破坏了那些.到底是怎么回事?如何彻底清除工作区?

r

32
推荐指数
2
解决办法
8万
查看次数

一次分离几个包

受到这个答案的启发,我正在寻找一种方法来同时分离几个包.

当我加载说Hmisc,

# install.packages("Hmisc", dependencies = TRUE)
require(Hmisc)
Run Code Online (Sandbox Code Playgroud)

R也加载survivalsplines.我的问题是,是否有办法将该组一起卸载?

我现在做这样的事,

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)

...

packages r

12
推荐指数
2
解决办法
1555
查看次数

如何在不重启R的情况下禁用包?

可能重复:
如何在不重新启动R的情况下卸载软件包?

要将包装入R,我们可以去library(.)require(.).如何在编码会话期间禁用包.我想要一些与之相反的东西require(.).

r package

9
推荐指数
1
解决办法
9760
查看次数

r 光栅“.self$finalize”错误导致失败

我已经使用以下函数通过 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 raster r-sf

7
推荐指数
1
解决办法
3816
查看次数

包中无法卸载R:无法安装包

我试图在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 fedora bioconductor

6
推荐指数
3
解决办法
2万
查看次数

在不重新启动 R 的情况下卸载和删除已加载的包

实际问题

我可以卸载删除包而不必重新启动已经需要/加载包的 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)

dll r loading uninstallation

5
推荐指数
0
解决办法
4502
查看次数

将中介包与 lme4 模型一起使用时出错:中介模型尚未实现 - 之前的答案对我不起作用

您好,我是 R 和这个论坛的新手。\n我遇到了与之前的发帖者相同的问题,但我的问题没有得到解决。当我尝试使用包 lme4 和中介运行多级中介模型时,我收到消息:“中介模型尚未实现”。

\n\n

我的数据:

\n\n
data.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)

r lme4

3
推荐指数
1
解决办法
3556
查看次数

标签 统计

r ×9

dll ×2

packages ×2

bioconductor ×1

c ×1

fedora ×1

lme4 ×1

loading ×1

package ×1

r-sf ×1

raster ×1

uninstallation ×1

workspace ×1