【问题标题】:Error: C stack usage too close to the limit when viewing data frame tail错误:查看数据帧尾部时,C 堆栈使用量太接近限制
【发布时间】:2015-01-19 07:09:33
【问题描述】:

我有一个数据框appt,大小为 91.2MB,包含 51 个变量的 29255 个观察值。

当我尝试使用 tail(appt) 检查它的结尾时,我得到了错误

Error: C stack usage 20212630 is too close to the limit

我不知道该怎么做才能解决这个问题。对我能做什么有什么建议吗?

作为附加信息,我同时在内存中还有一些大小几乎相当的其他变量,包括一个 90.2MB 的字符向量和一个 77405 obs 的 42.3MB 数据帧。 x 60 个变量。对这两个其他变量调用 tail 不会触发任何错误。

编辑: 我缩小了错误仅在访问最后一行时发生的范围。即appt[29254, ] 很好,appt[29255, ] 抛出错误。

【问题讨论】:

  • [试试这个。][1] 我知道的不多,但我 [1]:stackoverflow.com/questions/14719349/…
  • 谢谢,但不幸的是,对于该问题的两个答案,一个是指递归(我这里没有),另一个是针对 Unix(我在 Win 7 64 位) .
  • 对于 R 来说这是一个不寻常的错误;这是否发生在仅加载基本包的会话中(例如,save() 一个会话中的对象,load() 在另一个会话中)?有没有办法轻松模拟数据并仍然重现错误? sessionInfo() 的输出是什么?
  • 如果没有可重现的示例,我们将无能为力。最后一行的内容是什么?
  • 我知道,我也想知道如何重现最后一行,因为我在尝试检索它时遇到了错误。

标签: r


【解决方案1】:

我遇到了完全相同的错误,但设法通过在读取数据帧时禁用引用来解决它。对我来说,尝试 tail(df) 时也会出现错误。

原来我的文本文件中的一行有 \ 字符。如果您的文件在某处有 " 或 ',您可能会遇到同样的问题,因为 read.table 在默认情况下认为这是一个引号字符。

添加选项quote="" 以禁用全部引用。示例:read.table(filepath, quote="")

如果这不能解决您的问题,请查看 ?read.table 中的其他一些选项(例如 allowEscapes、sep、...),因为它们可能会导致您的错误。

【讨论】:

    猜你喜欢
    • 2017-10-01
    • 2018-05-09
    • 2021-01-12
    • 2020-05-04
    • 1970-01-01
    • 2021-02-17
    • 2013-05-28
    • 2020-08-12
    • 2022-01-03
    相关资源
    最近更新 更多