问题标签 [vroom]
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.
r - R:从 txt 文件中读取列标题略有不同(不同空格)的特定列并绑定它们?
我有许多txt
文件在由 ; 分隔的列中包含相同类型的数值数据。但是有些文件的列标题带有空格,而有些则没有(由不同的人创建)。有些有我不想要的额外列。
例如,一个文件可能有如下标题:
而另一个文件头可能是
在调用“读取”命令之前,如何清除名称中的空格?
清理标题脚本
我编写了一个破坏性脚本,它将读取整个文件,清理空格标题,删除文件并重新写入(vroom 有时抱怨无法打开 X 数千个文件)使用相同的文件姓名。不是一种高效的做事方式。
r - 使用 vroom 在 R 中读取日期列和所有其他列作为双精度
我有 csv 文件,其中包含超过 10000 个变量。我想使用 vroom 来读取它们,并希望将第 1 列标识为日期,将第 2 列标识为字符,第 3 列和第 4 列标识为整数,并将所有其余列标识为双精度。我该怎么做呢?
我的代码看起来像这样,但失败了。
告诉 vroom 在其余列中读取为双精度(替换我的代码中的 (.) 的语法是什么?谢谢。
r - 为什么 vroom 这么慢?
我有一个简单的操作,我读取了几个 csv,绑定它们,然后导出,但vroom
执行速度比其他方法慢得多。我一定做错了什么,但我不确定是什么,或者为什么。
由reprex 包于 2021-07-01 创建 (v2.0.0 )
r - 使用 vroom 在 R 中部分读取非常大的 csv.gz
我有一个 csv.gz 文件(据我所知),压缩前的大小为 70GB。我的机器有 50GB 的 RAM,所以无论如何我永远无法在 R 中将它作为一个整体打开。
例如,我可以按如下方式加载前 10m 行:
对于我必须做的事情,一次加载 10m 行,做我的操作,然后继续接下来的 10m 行就可以了。我可以循环执行此操作。
因此,我尝试了这个skip
论点。
这会导致错误:
我增加了这个Sys.setenv("VROOM_CONNECTION_SIZE" = 131072*1000)
,但是,错误仍然存在。
有针对这个的解决方法吗?
编辑:我发现随机访问 gzip 压缩的 csv (csv.gz) 是不可能的。我们必须从头开始。可能最简单的是解压缩并保存,然后跳过应该可以工作。
r - Vroom/fread 不会读取 LARGE .csv 文件 - 无法对其进行内存映射
我有一个.csv
重量为 112GB 的文件,但既不vroom
也data.table::fread
不会打开它。即使我要求读取 10 行或仅几列,它也会抱怨映射错误:无法分配内存。
read.csv
另一方面会愉快地阅读十行。
为什么不使用通常的 altrepvroom
或阅读它,即使是 10 行?fread
r - 通过 vroom 和管道压缩文件到 pixz
我想使用 vroom 包mtcars
使用压缩(xz
在我的情况下)将 data.frame 写入文件,pixz
但我无法让它写入文件。它抱怨它pixz
不存在,即使它是在本地安装的。
根据 vroom 小插图(https://vroom.r-lib.org/articles/vroom.html):使用单线程压缩:
使用并行实现和管道压缩到 pixz
r - 无法在 HPC 节点的 R.4.0.5 下安装 vroom
为了在 HPC 节点上安装另一个依赖于 vroom(失败)的软件包,我试图手动安装 vroom。
我尝试手动安装软件包,但也失败了:
我的代码:
错误信息:
我尝试过不同的 R 版本(3.5.3 到 4.1.1),但无论我选择什么版本,都会遇到同样的问题。
我还删除了在相应 R 版本包文件夹中的过程中可能出现的任何 00LOCK-“包名称”文件夹,但无济于事。
有人可以帮我吗?
提前谢谢了,
菲利伯图斯88
r - R readr read_csv 跳过错误与 VROOM_CONNECTION_SIZE
我有一个大的 (~18gb) csv 文件,我想以大块的形式阅读。块被单独处理(过滤)和连接。因为我正在遍历几个块,所以我使用了函数的skip
参数read_csv
。
下面是一个块的例子:
我的问题是,如果skip
参数足够大(~500 000 +),我会收到以下错误:
错误:连接缓冲区(131072)的大小不足以容纳整行:通过设置增加它
Sys.setenv("VROOM_CONNECTION_SIZE")
我已经尝试更改它(Sys.setenv("VROOM_CONNECTION_SIZE" = 131072 * 10000)
),但问题仍然存在。现在skip
参数必须随着我遍历块而增加,因此无论初始块大小如何,它都会在产生错误时达到阈值。
我认为这可能是由于 RAM 不足引起的,但我可以读取比它产生错误时的值大得多的初始块skip
(例如chunk_size = 5000000
,工作,而row_skip = 2000000
已经产生错误)。
r - 将data.frame转换为R中分隔字符串的函数的高性能实现
我正在寻找一个快速序列化函数来将 data.frame 转换为 R 中的分隔字符串。目前我正在使用readr::format_tsv
(Versions readr_2.0.0
vroom_1.5.3
) 进行转换,我想知道是否有更快的实现可用。对于下面的示例,转换大约需要 4.4 秒,这对于我的目的来说太慢了。
系统时间()
例子
r - dplyr 过滤器可以成功检测到的观察数量是否有限制?
我正在处理一个包含超过 2 亿行的大型数据集。我使用 vroom 包加载数据集以加快处理时间。当我使用 %in% 条件过滤数据集时,该过程会丢失观察结果。我想知道 dplyr 将成功过滤多少行是否存在限制。对于可重现的示例,数据集太大而无法加载,但我用来执行过滤过程的代码是(大致):
其中数据集“data.csv”包含 2 亿个观测值,“ID”是“数据”数据框中的列名,“列表”是符合所需搜索条件的 ID 号向量。
我预计大约有 600 万行符合标准,但返回的行数略多于 300 万。我想知道过滤器可以搜索的行数是否有限制。例如,如果我只能搜索 1 亿行,就可以解释为什么我错过了大约一半的预期观察结果。或者,使用 vroom 加载数据会影响我可以成功过滤的行数吗?