问题标签 [disk.frame]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
101 浏览

r - 尽管在 R 中使用了磁盘帧,但仍然无法分配大小向量

我一直在尝试使用磁盘框架来加载大约 45 gbs 的文件。我使用下面的代码将 csv 转换为磁盘帧:

但是,我不断得到:

或与 739.5 MB 相同的错误。

我尝试加载第二个较小的 csv 文件,以查看它是否有效并且确实有效。第二个文件与大文件相同,但只有前 1000 行。除了 Rstudio 和 chrome 之外的所有其他程序都已关闭,因为我正在在线寻找解决方案。我的电脑有 16 GB 的内存,我很困惑为什么这么小。跑步memory.limit()给了我16344。

有没有办法可以加载我的第一个文件而不会出现矢量错误?

0 投票
2 回答
56 浏览

r - 如何在 readin 时向 disk.frame 的 inmapfn 输入单个附加参数?

根据文章https://diskframe.com/articles/ingesting-data.html,inmapfn的一个很好的用例csv_to_disk_frame(...)是日期转换的一部分。在我的数据中,我知道运行时日期列的名称,并希望将日期输入到读取时间函数的转换。我遇到的一个问题是,除了块本身之外,似乎没有任何其他参数可以传递到 inmapfn 参数中。我不能在运行时使用硬编码变量,因为直到运行时才知道列的名称。

为了澄清这个问题,inmapfn 似乎在自己的环境中运行,以防止任何数据竞争/其他并行化问题,但我知道变量不会改变,所以我希望有办法覆盖它,因为我可以确保这是安全的。

我知道我调用的函数在任意数据帧上调用时有效。

我在下面提供了一个可重现的示例。

0 投票
0 回答
37 浏览

r - 如何在 R 中使用大内存数据执行 Hmisc::rcorr()?

我需要Hmisc::rcorr()用大内存data.table执行(各种前面的函数和子集都需要这种格式)。可以在给定的 RAM 中读取和加载 ( fread()) 对象,但rcorr()操作最终会失败:

> Error: cannot allocate vector of size 1.2 Gb

因此,我已经转移到各种包来处理大内存数据。我最初尝试过bigmemory,但无法开始:

然后我搬到disk.frame了没有成功:

我还尝试disk.frame在将 转换data.table为矩阵后创建一个,但它不接受data.frame类对象以外的任何内容。

我感谢提供的任何帮助。

0 投票
1 回答
64 浏览

r - 使用disk.frame,但仍然达到内存限制问题

问题:

我正在尝试对大型数据集执行相关性测试:data.table可以存在于内存中,但对其进行操作时会遇到内存限制Hmisc::rcorr()corrr::correlate()最终会遇到内存限制。

所以,我转而使用 filebackeddisk.frame包来解决这个问题,但我仍然达到了内存限制。

任何关于如何使用disk.frame或处理大内存的包来实现这一点的建议都非常感谢。

两者都rcorr()correlate()整个数据集进行操作。数据集包含NA值,因此我需要使用这些函数,因为它们允许使用"pairwise.complete.obs".

尝试:

0 投票
2 回答
34 浏览

r - disk.frame 是否允许在 R 中使用大型列表?

我正在生成一个非常大的数据集 (>120 Gb),它实际上是一个命名 (100x100x3) 矩阵的列表。一个非常大的列表(数百万条记录)。然后将它们馈送到 CNN 并分类为 4 个类别之一。一次处理这么多数据很麻烦,而且经常卡在我的 RAM 上,所以我想将我的数据集分成块并并行处理这些块。

我找到了几个包:bigmemory 和 disk.frame 看起来最合适。但他们接受名单吗?或者也许有更好的列表解决方案?

0 投票
2 回答
100 浏览

r - 使用 data.table 语法对 disk.frame 对象进行非标准评估的问题

问题

我目前正在尝试编写一个disk.frame使用正则表达式过滤对象的某些行的函数。不幸的是,我在过滤器函数中评估我的搜索字符串时遇到了一些问题。我的想法是将正则表达式作为字符串传递给函数参数(例如storm_name),然后将该参数传递给我的过滤调用。我使用了%like%包含在{data.table}过滤行中的函数。

我的问题是storm_name对象在disk.frame 内被评估。但是,由于storm_name仅包含在函数环境中,而不包含在 disk.frame 对象中,因此出现以下错误:

我已经尝试使用 评估storm_name父框架中的对象eval(sotm_name, env = parent.env()),但这也没有帮助。有趣的是,这个问题只发生在{disk.frame}对象上,而不是{data.table}对象上。

现在我找到了一个解决方案{dplyr}。但是,我将不胜感激有关如何解决此问题的任何想法{data.table}

可重现的例子

会话信息