JeffreyRacine / R-Package-np

R package np (Nonparametric Kernel Smoothing Methods for Mixed Data Types)
https://socialsciences.mcmaster.ca/people/racinej
46 stars 18 forks source link

Using bwmethod="cv.ml" after call to bwmethod="cv.ls" in npcdensbw when y is a factor segfaults.... #4

Open JeffreyRacine opened 9 years ago

JeffreyRacine commented 9 years ago

Call to cv.ls in npcdensbw followed by a call to cv.ml produces a segfault when y is a factor...

library(MASS) data(birthwt) birthwt$low <- factor(birthwt$low)

library(np) Nonparametric Kernel Methods for Mixed Datatypes (version 0.60-2) [vignette("np_faq",package="np") provides answers to frequently asked questions] [vignette("np",package="np") an overview] [vignette("entropy_np",package="np") an overview of entropy-based methods]

nmulti <- 1

Call ls then ml crashes

bw <- npcdensbw(low~

  • lwt,
  • bwmethod="cv.ls",
  • data=birthwt,
  • nmulti=nmulti)

bw <- npcdensbw(low~

  • lwt,
  • bwmethod="cv.ml",
  • data=birthwt,
  • nmulti=nmulti)

* caught segfault * address 0x0, cause 'unknown'

Traceback: 1: .C("np_density_conditional_bw", as.double(yuno), as.double(yord), as.double(ycon), as.double(xuno), as.double(xord), as.double(xcon), as.double(mysd), as.integer(myopti), as.double(myoptd), bw = c(bws$xbw[bws$ixcon], bws$ybw[bws$iycon], bws$ybw[bws$iyuno], bws$ybw[bws$iyord], bws$xbw[bws$ixuno], bws$xbw[bws$ixord]), fval = double(2), fval.history = double(max(1, nmulti)), timing = double(1), PACKAGE = "np") 2: system.time(myout <- .C("np_density_conditional_bw", as.double(yuno), as.double(yord), as.double(ycon), as.double(xuno), as.double(xord), as.double(xcon), as.double(mysd), as.integer(myopti), as.double(myoptd), bw = c(bws$xbw[bws$ixcon], bws$ybw[bws$iycon], bws$ybw[bws$iyuno], bws$ybw[bws$iyord], bws$xbw[bws$ixuno], bws$xbw[bws$ixord]), fval = double(2), fval.history = double(max(1, nmulti)), timing = double(1), PACKAGE = "np")[c("bw", "fval", "fval.history", "timing")]) 3: npcdensbw.conbandwidth(xdat = xdat, ydat = ydat, bws = tbw, nmulti = nmulti) 4: eval(expr, envir, enclos) 5: eval(parse(text = paste("npcdensbw.conbandwidth(xdat=xdat, ydat=ydat, bws=tbw", ifelse(any.m, ",", ""), paste(mc.names[m], ifelse(any.m, "=", ""), mc.names[m], collapse = ", "), ")"))) 6: npcdensbw.default(xdat = xdat, ydat = ydat, bws = bws, ...) 7: npcdensbw.NULL(xdat = xdat, ydat = ydat, ...) 8: npcdensbw(xdat = xdat, ydat = ydat, ...) 9: npcdensbw.formula(low ~ lwt, bwmethod = "cv.ml", data = birthwt, nmulti = nmulti) 10: npcdensbw(low ~ lwt, bwmethod = "cv.ml", data = birthwt, nmulti = nmulti) aborting ... Segmentation fault: 11