问题标签 [rbindlist]

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 投票
1 回答
47 浏览

r - 合并来自多个 data.tables 的唯一行并添加属性详细信息

我有两个这种格式的data.tables(实际的表格每个都有大约一百万行):

我想将两者结合在一起,并根据所有列条目的唯一性仅保留唯一行。这就是我所拥有的,但我认为有更好的方法:

一旦我有了这个单一的数据集,我想给任何重复的“代码”记录一些属性信息(版本号和关于该版本与前一个版本不同之处的评论)。我正在寻找的输出是这样的:

我不确定如何实现dt4(考虑到真实数据集的大小将超过一百万行,并且以一种有效的方式)。

编辑

将@Chase 的解决方案应用于我的真实数据后,我注意到我的 dt3 示例与我得到的结果类型略有不同。这看起来更像我的真实数据:

如您所见,创建评论列的建议解决方案似乎只返回第一个和第二个版本之间的第一个更改(而不是 V2 和 V3 等更好的更改)

0 投票
2 回答
85 浏览

r - 对列表进行数据清理后在列表中绑定数据帧

这是对我最后一个问题的跟进(在我对列表进行了一些数据清理之后,Rbinding large list of dataframes)。我变得更聪明了,前一个问题变得一团糟。

我有 43 个 xlsx 文件,我将它们加载到 R 中的列表中:

然后我添加了一些列名:

然后我删除了一些列:

我真的不需要删除它们,但是当我尝试合并数据框时,我不断收到关于这些类的错误。所以我只是删除了它们。

然后我将所有列更改为字符。我对 R 有点陌生,所以我知道这段代码不是很性感,你可能已经为此创建了一个循环或一个函数。但这就是我所做的:

[我对所有列都做了同样的事情]

然后我去绑定数据。

编辑:

我发现问题不是我的绑定方法(感谢您对此的投入)。我已经删除了关于绑定方法的部分。

问题在于我如何更改列表中数据框中列的 coltypes。

我也试过:

我在“ID”之前添加了一个逗号。这没有帮助。我觉得我需要使用 unlist,但我不确定如何在这里使用它?

0 投票
1 回答
437 浏览

r - rbindlist - 如何获取有关源信息的附加列?

我在一个文件夹中存储了 30 多个大型 .csv 文件。我想在 R 中将它们作为一个 data.frame/data/table 读取,具有以下标准:

(1)每个文件的第一和最后25行应该跳过(每个文件的行数不同)

(2) 最后一列应包含有关行来源的唯一信息(例如原始文件中的 filename.csv.rownumber)。每个文件中的许多列也不同。

到目前为止,我有这个:

但是,我不知道如何获得一个额外的列,其中包含每行来源的信息......

0 投票
0 回答
121 浏览

r - 将 parLapply 与 data.table 的 rbindlist 一起使用会导致 CPU 超过 100%

考虑以下代码块:

当我在有 36 个线程的机器上运行它时,突然所有线程都被激活(即,我在创建集群时指定的 8 个线程超过 100% 负载)。

这只发生在 data.table 1.12.0 上。一切都与 data.table_1.11.8 完美配合。这是一个错误还是我只是做错了什么?似乎问题出在 rbindlist 之内,即,如果我不在函数 rbindlist 中放置,我的 8 个线程上的负载不会超过 100%。在此处输入图像描述

这是我的会话信息:

0 投票
1 回答
36 浏览

r - 多个 .txt 导入中的小数分隔符

我需要用“。”导入多个 .txt 文件。某些列中的小数分隔符

当我导入数据时,数字变量列(带有小数点:16,500.56)像字符变量一样被加载,使用下面的代码:

我如何在这个公式中指定小数点分隔符????

0 投票
3 回答
5094 浏览

r - 使 rbindlist 跳过、忽略或更改列的类属性

我想合并一大组数据框(大约 30 个),每个数据框都有大约 200 个变量。这些数据集非常相似但并不完全相同。

请在下面找到两个示例数据框:

要重新创建错误:

当我执行以下操作时

数据集给出了错误:

我可以做什么:

  1. 跳过rbindlist不匹配的列并添加一些后缀。
  2. 将其中一列的类更改为另一列。

选项 1 的预期结果:

选项 2 的预期结果:

0 投票
0 回答
79 浏览

r - 使用错误消息确定操作过程

我发布了一个与代码有关的问题

这对我来说导致了以下错误消息:

这让我想知道。有可能:

  1. 将此错误消息存储在变量中。我试图了解如何应用以下链接,但我不完全理解所提供的解决方案(链接);

  2. df从错误消息中获取每个列;

  3. 将df1的class属性适配为df2(反之亦然);

  4. 再次尝试合并

就像是:

0 投票
1 回答
2634 浏览

r - 使用 rbindlist 时遇到错误:结果的第 25 列被确定为 integer64 但 maxType == 'Character' !=REALSXP

我使用以下函数将目录中的所有 .csv 文件合并到一个数据框中:

此代码产生此错误:

rbindlist(lapply(filenames, fread), fill = TRUE) 中的错误:内部错误:结果的第 25 列被确定为 integer64 但 maxType=='character' != REALSXP

该代码之前在相同的 csv 文件上工作过......我不确定发生了什么变化以及错误消息的含义。

0 投票
0 回答
259 浏览

r - 使用部分名称循环读取文件,以使用 fread(cmd=...) 和 rbindlist 在大型组合数据框中创建新变量

我正在尝试从一个文件夹中读取多个文件并将它们组合成一个大数据框。我希望新的数据框有一个列来标识它来自哪个文件,在我的例子中,年份是文件名的一部分。

我收到多个错误说:

将 input= 作为系统命令(“文件名”),并且在传递给input=. 请使用fread(cmd=...)。如果您正在创建应用程序,则存在安全问题,该应用程序可能会给恶意用户,并且该应用程序未在安全环境中运行;例如,应用程序以 root 身份运行。请阅读 v1.11.6 的 NEWS 文件中的第 5 项以获取更多信息以及禁止显示此消息的选项。

我不知道在哪里寻找 NEWS 并且无法使用 cmd 选项。文件名类似于“YYYY 一二三与四.dsv”。 预先感谢您的帮助!:)

更新我现在玩了一下fread()的 cmd 选项。我还没有设法解决我的问题,但也许我正朝着好的方向发展。

试图适应带空格的文件名“YYYY一二三和四.dsv”

这给出了每年的新错误:

'2003' 不是内部或外部命令、可运行程序或批处理文件。

警告()说执行失败,错误代码为 1。

0 投票
3 回答
178 浏览

r - rbindlist 只列出满足条件的元素

我有一个很大的清单。一些元素是字符串,一些元素是 data.tables。我想创建一个大 data.table,但只绑定 data.tables 的元素。

我知道如何在 for 循环中执行此操作,但我正在寻找更有效的方法,因为我的数据很大并且我需要一些快速的方法。

谢谢!

我正在寻找类似于做的结果,但由于我有很多条目,我不能这样做。