我注意到我想要使用的包中的函数存在错误。在github上已经出现了一个问题,但创作者还没有解决这个问题,我需要尽快使用该功能。
因此我想编辑代码。显然,这可以通过编辑源代码,重新打包和安装整个软件包来实现,我可以重写函数并重新分配命名空间,但也可以只使用trace()
编辑当前会话中的函数。
我已经发现我能做到:
as.list(body(package:::function_inside_function))
我要编辑的行位于该功能的第二个步骤中。
具体来说,我需要编辑的代码是this line。我必须将ignore.case
更改为ignore.case=True
。链接死亡的一个例子:
functionx(){if{...} else if(grepl("miRNA", data.type, ignore.case)) {...}}
我还没有找到一个关于如何从这里开始的实际例子,所以任何人都可以向我展示如何做到这一点的例子,或者引导我一个使用跟踪或可能重新分配函数的实际示例命名空间 - 我还没有真正找到一个如何做到这一点的实际例子。
文档中的示例在这个imho上并不是很清楚。
答案 0 :(得分:2)
我遇到过类似的问题并使用assignInNamespace()
解决了问题。我没有安装你的包,所以我不能确定这对你有用,但我认为应该。您将按以下步骤进行操作:
制作所需功能的版本,如编辑:
# I would just copy the function off github and change the offending line
readTranscripttomeProfiling <- function() {"Insert code here"}
# Get the problematic version of the function out of the package namespace
tmpfun <- get("readTranscripttomeProfiling",
envir = asNamespace("TCGAbiolinks"))
# Make sure the new function has the environment of the old
# function (there are possibly easier ways to do this -- I like
# to get the old function out of the namespace to be sure I can do
# it and am accessing what I want to access)
environment(readTranscripttomeProfiling) <- environment(tmpfun)
# Replace the old version of the function in the package namespace
# with your new version
assignInNamespace("readTranscripttomeProfiling",
readTranscripttomeProfiling, ns = "TCGAbiolinks")
我在另一个StackOverflow响应中找到了这个解决方案,但目前似乎无法找到原始版本。
答案 1 :(得分:2)
对于您的具体情况,您可能确实可以使用 eventClick: function(event, jsEvent, view) {
$('#calendar').fullCalendar( 'rerenderEvents' );
deleteEventFromDB(event._id,event.teacher_name);
$('#calendar').fullCalendar('removeEvents',event._id);
$('#calendar').fullCalendar( 'rerenderEvents' );
},
处理它。
从你提供的链接我不知道为什么你在函数中谈到函数,但这应该有效:
trace
请注意,如果要修复的参数# example
trace("grepl", tracer = quote(ignore.case <- TRUE))
grepl("hi", "Hi")
## Tracing grepl("hi", "Hi") on entry
## [1] TRUE
# your case (I assume)
trace("readTranscriptomeProfiling", tracer = quote(ignore.case <- TRUE))
尚未处于调用中的正确位置,则会更复杂。