2017-02-21 11 views
2

Всякий раз, когда я бегу lmer или glmer из lme4 пакета, я получаю следующее сообщение об ошибке:R lme4 Ошибка в '/ USR/Lib/rstudio/bin/rsession': таНос(): повреждение памяти:

Error in '/usr/lib/rstudio/bin/rsession' : malloc(): memory corruption:

Я обновляю все пакеты R, но все равно получаю ту же ошибку. Любая помощь будет высоко оценена. Благодаря

sessionInfo()

R version 3.3.2 (2016-10-31) 
Platform: i686-pc-linux-gnu (32-bit) 
Running under: Ubuntu 16.04.2 LTS 

locale: 
[1] LC_CTYPE=en_US.UTF-8  LC_NUMERIC=C    LC_TIME=en_US.UTF-8  
[4] LC_COLLATE=en_US.UTF-8  LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 
[7] LC_PAPER=en_US.UTF-8  LC_NAME=C     LC_ADDRESS=C    
[10] LC_TELEPHONE=C    LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] lme4_1.1-13 Matrix_1.2-8 

loaded via a namespace (and not attached): 
[1] minqa_1.2.4  MASS_7.3-45  tools_3.3.2  Rcpp_0.12.9  splines_3.3.2 
[6] nlme_3.1-131 grid_3.3.2  nloptr_1.0.4 lattice_0.20-34 

Отредактировано

library(lme4) 
fm1 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy) 

Выдает следующую ошибку:

Error in '/usr/lib/rstudio/bin/rsession' : malloc(): memory corruption:

+0

Можете ли вы использовать lme4 вообще? Проблемы сохраняются с терминала (вне rstudio)? – user20650

+0

Да, я могу загрузить библиотеку 'lme4' и получить помощь как в« RStudio », так и« Terminal ». Ошибка также появляется в терминале. – MYaseen208

+0

Я бы переустановил пакет libc в вашем Ubuntu Terminal. –

ответ

4

Были сообщения о проблемах с последним пакетом Matrix, 1.2-8, на 32-битных ОС (чел.) От Терри Терно и Брайана Рипли). Возможно, исправлено . может занять некоторое время (чел., М. Махлер), поэтому я бы попытался понизить матрицу до версии 1.2-7, например. devtools::install_version("Matrix","1.2-7") (вам понадобятся инструменты компиляции). Глядя на NEWS file для Матрицы, я подозреваю, что это имеет какое-то отношение:

  • C-API: SuiteSparse_long is now defined as int64_t on all platforms, and we now include (C99) ‘inttypes.h’
+0

Да, это как-то связано с изменением API (что также необходимо для правильной работы на некоторых 32-битных платформах !!), поскольку мы (Дирк и я, сторонники «RcppEigen» и «Matrix» соответственно) не были что «RcppEigen» имеет заголовочный файл, который был более или менее скопирован из Matrix ...и эта часть теперь устарела и находится в конфликте (по крайней мере, на 32-битной Windows). Обновите 2 пакета до последней версии. –

+0

Можете ли вы дать рекомендованные версии пакетов (т. Е. Все должно быть ОК, если у вас есть «Матрица»> 1.2.8 и «RcppEigen'> = 0.3.2.9.1?) –

0

Может быть проблема с обновлением Ubuntu. У меня была такая же проблема, но после последнего обновления базы Ubuntu проблема была исправлена.

+0

Спасибо @ user7644226 за ваш ответ. Я обновил 'Ubuntu', однако проблема все еще сохраняется. Есть предположения. – MYaseen208

1

В то время проблема была диагностирована и решена мною (сопровождающие Matrix):

Matrix 1.2-8 обновил свой API, но RcppEigen скопировал часть API C Matrix (заголовки и т. д.) ... и теперь уже не совместим ... только с 32-битной версией.

В настоящее время обновлено RcppEigen (и Matrix). Пожалуйста, установите последние версии этих двух, и все такие проблемы lme4 должны исчезнуть.

Смежные вопросы