tôi đã cố gắng để sửa đổi và xác định lại một chức năng (xcmsRaw) trong xcms gói R bằng cách đầu tiên xác định một hàmĐịnh nghĩa lại một hàm trong một gói phần mềm R
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) { ... }
và sau đó gõ
unlockBinding("xcmsRaw", as.environment("package:xcms"))
assign("xcmsRaw", my.xcmsRaw, as.environment("package:xcms"))
lockBinding("xcmsRaw", as.environment("package:xcms"))
Tuy nhiên, khi Tôi chạy nó cung cấp cho tôi lỗi
Error in get(as.character(FUN), mode = "function", envir = envir) :
object 'profBinM' of mode 'function' was not found
gây ra bởi nó không tìm thấy hàm profBinM, mà là một mã C không đúng ion được định nghĩa trong tập tin xcms.c của gói xcms.
Bất kỳ suy nghĩ nào về cách tôi có thể giải quyết vấn đề này? (Tôi đang làm việc trong môi trường Windows 7, sử dụng R phiên bản 3.0.0)
Bạn đã thử 'assignInNamespace()', như trong ví dụ, [ví dụ này] (http://stackoverflow.com/questions/15505607/diagonal-labels-orientation- on-x-axis-in-heatmaps/15506652 # 15506652)? Trong trường hợp của bạn, bạn sẽ sử dụng một cái gì đó như 'assignInNamespace (x =" xcmsRaw ", giá trị =" my.xcmsRaw ", ns = asNamespace (" xcms "))'. –
Cảm ơn bạn đã gợi ý, chỉ cần thử điều đó nhưng nó vẫn mang lại cho tôi lỗi tương tự ... –
Thú vị. Chỉ cần chính xác/rõ ràng, 'profBinM()' là một hàm R kết thúc tốt đẹp một hàm C. –