سؤال

إذا وجدت خطأ في حزمة ، فعادة ما يمكن تصحيح المشكلة مع fixInNamespace, ، على سبيل المثال fixInNamespace("mean.default", "base").

لطرق S4 ، لست متأكدًا من كيفية القيام بذلك. الطريقة التي أنظر إليها في gWidgetstcltk صفقة. يمكنك رؤية الرمز المصدر مع

getMethod(".svalue", c("gTabletcltk", "guiWidgetsToolkittcltk"))

لا يمكنني العثور على الطرق مع fixInNamespace.

fixInNamespace(".svalue", "gWidgetstcltk")

Error in get(subx, envir = ns, inherits = FALSE) : 
  object '.svalue' not found

اعتقدت setMethod قد تفعل الخدعة ، ولكن

setMethod(".svalue", c("gTabletcltk", "guiWidgetsToolkittcltk"),
  definition = function (obj, toolkit, index = NULL, drop = NULL, ...) 
  {
      widget = getWidget(obj)
      sel <- unlist(strsplit(tclvalue(tcl(widget, "selection")), 
          " "))
      if (length(sel) == 0) {
          return(NA)
      }
      theChildren <- .allChildren(widget)
      indices <- sapply(sel, function(i) match(i, theChildren))
      inds <- which(visible(obj))[indices]
      if (!is.null(index) && index == TRUE) {
          return(inds)
      }
      if (missing(drop) || is.null(drop)) 
          drop = TRUE
      chosencol <- tag(obj, "chosencol")
      if (drop) 
          return(obj[inds, chosencol, drop = drop])
      else return(obj[inds, ])
  },
  where = "package:gWidgetstcltk"  
)

Error in setMethod(".svalue", c("gTabletcltk", "guiWidgetsToolkittcltk"),  : 
  the environment "gWidgetstcltk" is locked; cannot assign methods for function ".svalue"

أيه أفكار؟

هل كانت مفيدة؟

المحلول

ماذا عن طريقة المدرسة القديمة للحصول على المصدر ، وتطبيق التغيير وإعادة البناء؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top