Сбой функции gamm () в JRI

1

Я установил JRI для работы с NetBeans 7.4 с использованием 32-разрядных R 3.0.2 и Java jdk1.7.0_45 в Windows 7.

Я использую следующий код Java

     REXP load=re.eval("source('C:\\\\SearchPath\\\\gammaDistAnova.r')");
     String errStr=load.asString();
     REXP stats=re.eval("gammaDistAnova.getStats(ref, target)");

для вызова следующего сценария R.

gammaDistAnova.getStats<-function(ref, target){
  library("MASS") # Library containing fitdistr
  library("mgcv")
  library("stats")

  # Get mean and SD of reference
  gr=fitdistr(ref+0.00001,"gamma")  # Ref is a vector of (reference) values.  The     0.00001 is to prevent errors due to zero values
  meanRef<-gr[1]$estimate['shape']/gr[1]$estimate['rate']  # Mean of ref vector  
  SDref<-sqrt(gr[1]$estimate['shape']/(gr[1]$estimate['rate']^2)) # SD of ref vector

  # Get mean and SD of target
  gt=fitdistr(target+0.00001,"gamma")  # target is a vector of (target) values.  The 0.00001 is to prevent errors due to zero values
  meanTarget<-gt[1]$estimate['shape']/gt[1]$estimate['rate']  # Mean of target vector  
  SDTarget<-sqrt(gt[1]$estimate['shape']/(gt[1]$estimate['rate']^2)) # SD of target vector

  # Analysis of variance between the distributions
  n=300
  x=rgamma(n, shape=gr[1]$estimate['shape'], scale=1/gr[1]$estimate['rate'])
  y=rgamma(n, shape=gt[1]$estimate['shape'], scale=1/gt[1]$estimate['rate'])
  random1 <- sample(c("level1","level2","level3"), n, replace=TRUE)
  debug=list(random1 = ~1)
#  glmm1 <- gamm(y ~ x, random=list(random1 = ~1))
#  anova(glmm1$gam)

  out=list("refMean"=meanRef, "refSD"=SDref, "targetMean"=meanTarget, "targetSD"=SDTarget, "lx"=length(x), "ly"=length(y))
  out
}

Все работает нормально (все, что возвращается в списке, кажется действительным и что я ожидаю), пока я не раскомментирую

glmm1 <- gamm(y ~ x, random=list(random1 = ~1))

в этом случае функция возвращает значение null, что указывает на сбой.

Хотя функция не работает с JRI, она запускается без проблем в RStudio версии 0.98.501.

Редактировать:

Я пытался

  glmm1 <- gamm(y ~ x, random=list(random1 = ~1))
  errStr=geterrmessage()
  errStr

но

 re.eval("gammaDistAnova.getStats(ref, target)");

еще вернул null

  • 0
    Это сработало? если не плохо, попробуйте запустить этот код на моей машине.
Теги:
jri

1 ответ

1

Вы должны проверить свой каталог "lib" в каталоге ....\R\win-library\3.0.2

и проверьте, можете ли вы обрезать пакет mgcv, если нет, загрузите его снова в свою версию R

Один из вариантов заключается в том, что вы загрузили эту библиотеку в более раннюю версию R.

  • 0
    У меня нет этого каталога, но есть .. \ R \ R-3.0.2 \ library \ mgcv. Файлы в нем датированы 9 сентября 2013 года, а подкаталоги датированы 16 декабря 2013 года (дата, когда я остановился R). Спасибо,
  • 0
    Когда вы запускали код r (используя только R), он был через «источник»? Или как в консоли?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню