据我随机看到,我有相当大的代码块有时会中断,并显示错误消息:
此应用程序已请求运行时以不寻常的方式终止它。请联系应用程序的支持团队以获取更多信息。
一些研究表明,当被调用时,这似乎是一条 Windows/C runtime
消息abort
(例如,请参见此链接)。这让我发疯:因为这不是R
我不知道去哪里引发的错误。有没有人知道在哪里R
或可能data.table
(如果一个包abort
在C runtime
[??] 中调用该函数)调用该abort
函数?
以下是一些进一步的信息:
- 问题与机器无关:我在两台不同的机器上尝试过,有时它们都崩溃了。
- 问题与 R 版本无关:我尝试使用
2.13.1
、2.13.2
和2.14.0
. - 两台机器都运行 Windows 7(64 位)。
- 这个问题似乎与我的
data.tables
. 当我人为地减小更大的大小时data.table
,代码运行起来就像一个魅力。然而,有趣的是,一台机器的 RAM 比另一台机器大得多(16 GB 与 6 GB)。然而,这个额外的 RAM 并没有真正的帮助,至少看起来如此。 - 该问题不可重现,并且在我的代码中的不同部分中断。我注意到这一点是因为我的代码在 Sweave 文档中运行,所以我可以在 R 崩溃后打开 .tex 文件,并且它总是停在不同的位置。但是,它似乎总是在
data.table
调用操作时(但这并不意味着很多,因为我的代码严重依赖data.table
)。然而,即使我不调用 Sweave,而只是运行代码,它有时也会中断。所以它似乎与 Sweave 无关。 - 它与我正在使用的编辑器无关。我使用
RStudio
,但通过在纯 R 命令窗口中运行代码来重现此行为。
这基本上是我想出的所有可能的解释。因此,如果有人对这个错误可能来自哪里或我还能检查什么有任何提示,那就太好了。
PS:接下来的几天我不会在我的机器上,所以如果我没有立即给出反馈,我希望你能原谅我。尽管如此,我还是想在圣诞节前发布这个问题,否则我无法享受我心爱的R
痛苦,我正坐在家里,而不是试图治愈它......
更新
我进一步研究了这个问题,过了一会儿,我得到了一个相当小的例子,data.table
它打破了我的 R 会话。如果此问题已得到解决并解决了此处所述的 R 崩溃(请注意,这是一个很大的问题,因为我在 data.table 列表中发布的示例只是中断了我的 R 会话并且没有以我描述的错误消息结束它这里),我会在这里写一个答案并接受它。