我正在尝试使用spread()
函数从tidyr
在 R 中将其封装在一个包含大约 300 万个观测值的数据帧上。它返回以下错误消息:
Error : C stack usage 26498106 is too close to the limit
当我跑步时Cstack_info()
,它告诉我
> Cstack_info()
size current direction eval_depth
7969177 15272 1 2
按照答案中的建议进行操作this https://stackoverflow.com/questions/14719349/error-c-stack-usage-is-too-close-to-the-limit?rq=1问题,我尝试通过运行来增加堆栈大小ulimit -s 32768
在终端窗口中并从终端打开 Rstudio。然而,当我尝试这样做时,输出Cstack_info()
没有改变,当我运行我的代码时,我收到相同的错误消息。在对同一早期问题的另一个回答之后,我尝试更新 R 和 Rstudio,也无济于事。我在这里做错了什么?
我在 16 GB 内存的 mac os x 10.12.2 上运行 R 3.3。
我遇到了类似的情况,就我而言,我可以通过设置 launchctl 限制来增加 C 堆栈的大小。
在设置 launchctl 限制之前:
> Cstack_info()
size current direction eval_depth
7969177 17072 1 2
$ ulimit -s
stack size (kbytes, -s) 8192
$ sudo launchctl limit
stack 8388608 67104768
设置 launchctl 限制:
$ cd /Library/LaunchDaemons/
$ sudo vi limit.stack.plist # create a new plist file to set new stack value
<plist version="1.0">
<dict>
<key>Label</key>
<string>limit.maxfiles</string>
<key>ProgramArguments</key>
<array>
<string>launchctl</string>
<string>limit</string>
<string>stack</string>
<string>67104768</string>
<string>67104768</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceIPC</key>
<false/>
</dict>
</plist>
重启后:
> Cstack_info()
size current direction eval_depth
63749529 17072 1 2
$ ulimit -s
stack size (kbytes, -s) 65532
$ sudo launchctl limit
stack 67104768 67104768
R版本3.5.0
macOS 高塞拉利昂 10.13.5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)