Я попытался изменить и переопределить функцию (xcmsRaw) в пакете R xcms, сначала определив функцию
my.xcmsRaw <- function(filename, profstep = 1, profmethod = "bin",
profparam = list(mzcorrf=1), # PATCH - mzcorrf is the m/z correction factor, e.g. 0.99888 for long-chain hydrocarbons
includeMSn = FALSE, mslevel=NULL,
scanrange=NULL) { ... }
а затем набрав
unlockBinding("xcmsRaw", as.environment("package:xcms"))
assign("xcmsRaw", my.xcmsRaw, as.environment("package:xcms"))
lockBinding("xcmsRaw", as.environment("package:xcms"))
Однако при запуске выдает ошибку
Error in get(as.character(FUN), mode = "function", envir = envir) :
object 'profBinM' of mode 'function' was not found
вызвано тем, что он не находит функцию profBinM, которая является функцией кода C, определенной в файле xcms.c пакета xcms.
Любые мысли о том, как я могу решить эту проблему? (Я работаю под Windows 7, используя R версии 3.0.0)
assignInNamespace()
, как, например, в этом примере а>? В вашем случае вы бы использовали что-то вродеassignInNamespace(x="xcmsRaw", value="my.xcmsRaw", ns=asNamespace("xcms"))
. - person Josh O'Brien   schedule 01.05.2013profBinM()
- это функция R, обертывающая функцию C. - person Josh O'Brien   schedule 01.05.2013trace(xcmsRaw, edit=TRUE)
и внести изменения таким образом? - person Josh O'Brien   schedule 01.05.2013tracer
trace()
, как в этом примере и этот а>. Некоторые способы найти правильное значение аргументаat
см. в ответах — и, в частности, Майкла Хоффмана — на этот вопрос. - person Josh O'Brien   schedule 01.05.2013