Как убедиться, что RStudio включает изменения, внесенные в .bashrc

#r #linux #rstudio

#r #linux #rstudio

Вопрос:

В настоящее время в моей RStudio я запустил этот код с этой ошибкой:

 > library(gtools)
> nrow(combinations(n=448,r=2,v=1:448,repeats.allowed=F))
Error: C stack usage  7971524 is too close to the limit
  

Что я сделал, так это добавил эту строку

 ulimit -s 16384
  

в моем bashrc.

Приведенный выше код R выполняется нормально, если я выполняю его с помощью консоли R в своем терминале. Но он по-прежнему выдает ошибку, когда я запускаю его в консоли RStudio.

Как я могу исправить проблему?

Комментарии:

1. Вы пробовали system("ulimit -s 16384") ?

2. Я пытался. Это не имеет никакого эффекта. Все еще выдает ошибку.

Ответ №1:

Добавление ulimit -s 16384 в .bashrc повлияет только на команды, выполняемые из bash оболочки. Например, выполнение R console из терминала (таким же образом вы можете выполнить RStudio из bash, и это будет работать).

Чтобы применить ulimit -s 16384 ко всему сеансу входа в систему:

  • добавьте изменения в /etc/security/limits.conf файл.
 *            soft    stack           16384                                   
*            hard    stack           16384
  
  • выйдите из системы / войдите в систему, чтобы подать заявку.
  • запустите RStudio как обычно и проверьте.

Комментарии:

1.@scamander, затем для целей отладки в R коде попробуйте напечатать значение ulimit стека. Если значение равно 16384 , значит, проблема не в текущем значении стека. Поскольку ulimit это встроенный bash, вы можете (попробовать) выполнить его из R кода с помощью command /bin/bash -i -c 'ulimit -a' .