首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何重新加载函数(或更改包优先级)

如何重新加载函数(或更改包优先级)
EN

Stack Overflow用户
提问于 2017-06-15 16:19:33
回答 2查看 2K关注 0票数 1

我正在使用矩阵库来处理稀疏矩阵。偶尔,我需要运行一个使用生物导体包的函数,它依赖于S4Vectors库。不幸的是,矩阵中的"colSums“函数与S4Vectors中的"colSums”函数冲突。因此,当我运行这个函数时,它破坏了我的"colSums“函数,这真的很烦人。

对于这个问题,我知道有两种常见的解决方案: 1)在加载矩阵库之前加载生物导体包--然而,我很少使用这个函数,所以我倾向于只在需要的时候加载生物导体包。2)而不是调用"colSums",而是调用"Matrix::colSums“--然而,这是非常不方便的,我需要更改我的整个代码库。

理想情况下,我只是加载生物导体包,运行我的功能,然后通过卸载生物导体包或重新加载矩阵包来清理我的环境。然而,我在做这些方面有困难。首先,是否有可能重新加载矩阵::colSums(以便替换S4Vectors::colSums)?其次,当我试图卸载S4Vectors时,R会抱怨,因为很多其他包都依赖它。

因此,除了S4Vectors为什么有一个与R中最常用的稀疏矩阵包冲突的函数这一显而易见的问题之外,我想知道这个问题的最佳解决方案是什么?简单地重新装载一个包不可能那么困难,对吧?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-16 04:50:25

正如您已经知道的,正确的方法是编写Matrix::colSums

一个不需要重写代码的简单解决方案是添加一行

代码语言:javascript
运行
AI代码解释
复制
colSums <- Matrix::colSums

在你的密码里。然后,这个colSums属于您的全局环境,因此在任何其他库之前都可以找到。

编辑

我找到了更好的解决办法。我将用plyrdplyr演示,因为它们都有arrange函数,并且会引起冲突。

Example1。dplyr稍后加载,因此获胜。

代码语言:javascript
运行
AI代码解释
复制
library(plyr)
library(dplyr)
environment(arrange)  
# <environment: namespace:dplyr>

例2. plyr获胜

代码语言:javascript
运行
AI代码解释
复制
# unload libraries
unloadNamespace("plyr")
unloadNamespace("dplyr")
library(dplyr)
library(plyr)
environment(arrange)

关键是搜索顺序,您可以通过search函数找到它。下面,您可以看到plyr先于dplyr

代码语言:javascript
运行
AI代码解释
复制
search()
# [1] ".GlobalEnv"        "package:plyr"      "package:dplyr"     "tools:rstudio"    
# [5] "package:stats"     "package:graphics"  "package:grDevices" "package:utils"    
# [9] "package:datasets"  "package:methods"   "Autoloads"         "package:base" 

示例3.您可以在搜索列表中指定要加载库的位置;pos参数。

代码语言:javascript
运行
AI代码解释
复制
unloadNamespace("plyr")
unloadNamespace("dplyr")    

library(plyr)
library(dplyr, pos=length(search()))
environment(arrange)
# <environment: namespace:plyr>

search()
# [1] ".GlobalEnv"        "package:plyr"      "tools:rstudio"     "package:stats"    
# [5] "package:graphics"  "package:grDevices" "package:utils"     "package:datasets" 
# [9] "package:methods"   "Autoloads"         "package:dplyr"     "package:base" 

总之,您可以加载Bioconductor库,并提供大量的pos。也就是说,你说Bioconductor依赖于S4Vector,而S4Vector是导致冲突的原因。不幸的是,您不能直接控制依赖包的位置,因为require语句在Bioconductor包中。

解决方法是,首先使用S4Vector选项加载pos,然后加载Bioconductor

代码语言:javascript
运行
AI代码解释
复制
library(S4Vector, pos=10)  # replace 10 by an appropriate large number
library(Bioconductor)  

然后,S4Vector将按搜索顺序放在Matrix之后。

另一种解决办法

如果您想重新加载Matrix,那么您也可以这样做:

代码语言:javascript
运行
AI代码解释
复制
library(dplyr)
library(plyr)
environment(arrange)
# <environment: namespace:plyr>

unloadNamespace("dplyr")
library(dplyr)
environment(arrange)
# <environment: namespace:dplyr> 
票数 2
EN

Stack Overflow用户

发布于 2017-06-16 04:35:10

示例:

代码语言:javascript
运行
AI代码解释
复制
library(lubridate)

卢布多日弹出一条消息说:下面的对象被隐藏在‘package:base’:date中,但是您仍然可以到达原始的date函数。

代码语言:javascript
运行
AI代码解释
复制
base::date()

所以你不需要看装货顺序。只需具体说明你在哪种功能中使用。

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

https://stackoverflow.com/questions/44578920

复制
相关文章
easyui+ssm+shiro做的登录注册修改密码审核用户添加角色(五)
easyui+ssm+shiro做的登录注册修改密码审核用户添加角色(五)
Java架构师必看
2021/04/13
1.6K1
easyui+ssm+shiro做的登录注册修改密码审核用户添加角色(五)
keycloak 添加用户注册邮箱后缀验证
keycloak可以开启邮箱注册功能, 也可以验证邮箱激活, 但是没有验证邮箱后缀的功能
不止于python
2022/05/31
2.3K0
keycloak 添加用户注册邮箱后缀验证
在【用户、角色、权限】模块中如何查询不拥有某角色的用户
用户与角色是多对多的关系, 一个角色可以被赋予给多个用户,一个用户也可以拥有多个角色; 查询不拥有某角色的所有用户, 如果用leftjoin查询,会造成重复的记录: 举例错误的做法:
liulun
2019/07/19
2.7K0
WordPress注册用户页面添加验证码
最近越来越多使用wordpress建站的童鞋给网站加上了用户中心功能,并且开放了网站注册,但是随之而来的就是大量的机器注册的垃圾用户,有些童鞋非常机智的利用插件给注册单表加上了验证码,有些童鞋则想给注册单表添加一个验证问答,其实也推荐大家使用验证问答,这样对于某些限制注册的网站非常适用,某些网站可能仅仅只开放给部分人群,则可以仅仅将答案告诉那部分人群即可,这样的效果验证码显然不能实现。先上一张效果图:
子润先生
2021/07/07
1.8K0
Android笔记:软键盘弹出遮盖原来界面的布局控件
如果加上的是 android:windowSoftInputMode="adjustPan"这样键盘就会覆盖屏幕。
程思扬
2022/01/10
1.1K0
用户、角色和权限
InterSystems IRIS®具有系统级安全性,以及一组与sql相关的额外安全性特性。 在数据库级保护之外,InterSystems SQL安全性提供了额外级别的安全功能。 SQL和系统级安全性之间的一些关键区别是:
用户7741497
2022/06/07
2.2K0
如何给 UE4 场景添加游戏角色
由于美国制裁,谷歌公司已经停止认证运行安卓管理系统的俄罗斯BQ公司的智能手机。该公司已经在测试中国华为的鸿蒙操作系统(HarmonyOS)。华为公司对此回应称,“目前暂无计划在海外推出搭载HarmonyOS的手机”。
HelloWorld杰少
2022/08/04
1.1K0
如何给 UE4 场景添加游戏角色
原生JS解决 安卓机 input/textarea输入键盘遮盖输入框
h5开发时,input/textarea输入框在安卓手机中,获取焦点时,键盘会直接在页面上方弹出,如果你的输入框刚好在页面下方就会被弹出的键盘遮挡,也无法向上滑动使其显示,如下图所示:
王念博客
2019/07/24
4.2K0
Cloudera Manager用户角色
对Cloudera Manager功能的访问由指定身份验证机制和一个或多个用户角色的用户帐户 控制。用户角色确定经过身份验证的用户可以执行的任务以及该用户在Cloudera Manager管理控制台中可见的功能。除了默认用户角色,您还可以创建仅适用于特定集群的用户角色。
大数据杂货铺
2020/10/29
2.1K0
Cloudera Manager用户角色
WordPress如何快速重置默认用户角色权限
相信很多 WordPress 用户都希望根据自己的需求来显示和设置用户的分组和权限,而对于 WordPress 默认的用户角色权限觉得有些不大实用和符合中文,所以也就出现了很多 WordPress 主题和插件就能够定义用户的角色权限,所有后时候更换主题和取消插件后就会发现,当访问一些 WordPress 页面的时候就会出现该用户没有权限编辑和访问之类。
张子凡
2022/11/03
8930
WordPress如何快速重置默认用户角色权限
Discourse 如何修改注册用户的头像
如果你这个不太好找的话,你可以使用快捷链接:  /u/honeymoose/preferences/account,在这个的前面需要添加你的域名地址。
HoneyMoose
2020/05/20
1.4K0
Discourse 如何修改注册用户的头像
用户如何查域名注册商?域名注册有哪些条件?
域名对于公司网站或企业网站的重要性不言而喻,用户浏览网页基本上都是通过域名实现的。域名需要按期缴纳服务费,如果到期之后需要及时续费,在续费之前,用户应当及时了解域名注册商,那么用户如何查域名注册商呢?
用户8739990
2021/08/13
27.3K0
纳税服务系统四(角色模块)【角色与权限、角色与用户】
需求分析 我们直接来看看原型图,看看需求是怎么样的: 这里写图片描述 这里写图片描述 我们看到上图,就会发现角色模块主要还是CRUD,唯一不同的就是它不再是单独的实体关系。角色与权限是存在关系的。 之
Java3y
2018/04/02
4.6K0
纳税服务系统四(角色模块)【角色与权限、角色与用户】
Laravel 多角色用户权限
Gates 和 Policies $this->authorize () 方法 @can 和 @cannot Blade 命令
切图仔
2022/09/14
1.6K0
Laravel 多角色用户权限
Oracle 用户、角色管理简介
3)DEFAULT TABLESPACE testtbs001:指定在用户方案(schema)中创建的对象的默认表空间为testtbs001
授客
2019/09/11
1.2K0
WPJAM Basic 扩展:用户角色
先首先说明一下:「用户角色」是一个面向 WordPress 开发者的扩展,如果你只是 WordPress 普通用户,不能十分明白,也没关系,就先简单看看也好。😊 WordPress 有一个角色和权限系统,用来来验证用户是否有足够的权限来进行某种操作,这个系统首先给用户分分配角色(Role),然后给每个角色都分配一定的权限(Capabilities),而这个「用户角色」扩展,则把这个角色和权限系统做成可视化。 用户角色 安装好扩展之后,在用户的菜单下面就会有一个「角色管理」的子菜单,点击进去就会看到目前系统所
Denis
2023/04/14
3190
WPJAM Basic 扩展:用户角色
PostgreSQL用户及角色介绍
原文:https://www.enmotech.com/web/detail/1/774/1.html
数据和云01
2019/07/31
3.7K0
点击加载更多

相似问题

向注册用户添加默认角色

29

Android webview键盘遮盖输入

317

zfcuser在注册后添加用户角色

44

如何在注册表中添加用户角色

12

注册时将用户添加到角色

17
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档