问题标签 [reshape2]
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.
performance - R中的高性能大数据操作
我正在处理一组列表,其中包含深度嵌套的列表,除了以下事实之外没有固定结构:
- 级别 1 的列表有一个元素,称为
variations
- 层次结构中的所有叶数据都是数字的。
例如:
我需要将列表数据结构转换为reshape
表格的熔化(每个)数据框
或其他我可以执行快速分组和过滤的数据结构。
数据结构中有数百万个节点。该集合可以有数千个条目,每个条目都有数万个变体,其中包含 2-10+ 个名称未知的叶节点。
我正在寻找有关如何以快速方式从集合中构建数据框的建议。
一种方法是unlist
在源数据上使用以展平列表,但我不确定以下内容:
我应该
unlist
在整个数据结构上运行,它将叶数字节点转换为字符串(然后我需要将其解析回数字)还是应该unlist
在每个变体上使用(这将使数字叶节点保持完整)?什么是解析
unlist
将创建以提取variation
和variable
值的长名称而不生成太多中间值的好方法?
不管是否unlist
是正确的方法,我想知道:
构建单独
variation
的 ,variable
和value
向量或矩阵然后将它们组合成一个数据框而不是逐行构建数据框更好吗?我不应该使用数据帧,而是使用另一种更快的数据结构来处理此类数据吗?无论我最终使用什么,都需要可转换为数据帧以用于
plyr
,reshape
和ggplot
.
r - 快速融化的数据表操作
我正在寻找用于操作data.table
其结构类似于melt
从reshape2
包中创建的数据框的对象的模式。我正在处理具有数百万行的数据表。性能至关重要。
问题的一般形式是是否有一种方法可以根据列中的值子集执行分组,并让分组操作的结果创建一个或多个新列。
问题的一种特定形式可能是如何使用data.table
来完成dcast
以下内容的等效操作:
其输出是
r - 使用 R 将多个文件融合并合并到一个数据库中
我一直在尝试导入几个 csv 文件,使用函数“melt”并将它们合并到 R 中的单个数据库中。所有文件都有一个“id”、“date.time”和“tag”列;但是,其余列因文件而异。这是一个文件中几行的示例:
我正在尝试使用此循环来融合每个文件并绑定生成的数据框。但是,它仅适用于循环中的最后一个文件。我不确切知道如何设置循环/函数,以便它可以首先执行每个文件的“融化”,然后将它们“合并/绑定”到单个数据帧中。
任何建议将不胜感激!
r - 为矩阵中的某些相关性在 R 中生成图形
我想在某个点上方和下方具有相关性以及 pvalue < 0.01 的变量(列)之间生成图表。这些图将是 ggplot2(线或条)图,绘制相关的两列(变量)。
到目前为止,这是我的方法的要点,有一些虚拟数据,我希望能指出下一步该去哪里。
下面是硬编码示例,如果 var1 和 var2 的值为 TRUE。我假设这是我需要某种循环来生成多个 varA 和 varB 相关的图的地方。
r - 在由多列定义的类别中粘贴值
我想result
在df
水平方向创建一个数据集,为每个
region
, state
,组合单独的行创建一个数据集,county
其中列被排序。year
city
我还想通过 标识新数据集中的每一行region
,state
并删除四列county
之间的空白。results
下面的代码完成了所有这些,但我怀疑它不是很有效。
有没有一种方法可以做到这一点,reshape2
而无需为每个组创建唯一标识符并对每个组内的观察进行编号?有没有办法使用 apply 代替 for 循环从矩阵中删除空格?(此处使用矩阵的方式与数学或编程构造不同。)我意识到这是两个独立的问题,也许我应该分别发布每个问题。
鉴于我可以达到预期的结果并且只想改进代码,我不知道我是否应该发布这个,但我希望学习。感谢您的任何建议。
编辑:
Matthew Lundberg 下面的回答非常好。后来我意识到我还需要创建一个输出数据集,其中上面的四个结果列包含数字、有理数并用空格分隔。因此,我在下面发布了一种明显的方法来修改马修的答案。我不知道这是否是公认的协议,但新场景似乎与原始帖子直接相关,以至于我认为我不应该发布新问题。
r - 从 data.frame 中“解包”一个因子列表
我是 R 新手/可以选择轻松地重新组织数据,并且一直在寻找解决方案,但找不到我想要做的事情。Reshape2 的熔化/铸造似乎不太奏效,而且我对 plyr 的掌握还不够好,无法将其考虑在内。
基本上我有一个具有下面概述的结构的data.frame,其中每个元素都是一个可变长度的类别列表(更紧凑,因为# 列更大,我实际上有多个我想要的category_lists喜欢分开):
我想将类别作为因素(以及相关的值,即第 3/4 列)进行操作,所以我认为我最终需要这样的东西,其中 ID 和 x/y/其他列值根据类别列表的长度:
如果 category_list 上的因子/方面有另一个解决方案,那将是一个更简单的解决方案,但我没有遇到支持此的方法,例如以下引发错误
layout_base(data, cols, drop = drop) 中的错误:至少一层必须包含用于分面的所有变量
谢谢!
r - 如何将两个变量转置/转换为一行?
我需要转这个
进入这个
IE。通过 id 将 df 的行转置/转换为未知数量的列,由于长度不等,将零放在可能存在空值的位置。
我已经尝试过
但这并不完全正确。我该怎么做?
r - 枚举因子水平的实例
我有一个包含 150000 行的长格式数据框,其中多次出现相同的 id 变量。我正在使用 reshape(来自 stat,而不是 package=reshape(2))将其转换为宽格式。我正在生成一个变量来计算给定级别 id 的每次出现以用作索引。
我已经使用 plyr 处理了一个小型数据框,但是对于我的完整 df 来说太慢了。我可以更有效地编程吗?
因为我有大约 30 个其他变量,所以我一直在努力使用 reshape 包来做到这一点。对于每个单独的分析,最好只重塑我正在查看的内容(而不是整个 df)。
r - 在 R 中重塑数据,跳过某些测量变量
我想重塑一个data.frame
看起来像这样的:
我想让我data.frame
的样子如下:
我一直在尝试使用reshape2
package 来做到这一点,但我无法与var1
其他人隔离开来并继续获得结果var2_20
,var2_30
例如结果。有谁知道如何使用reshape2
包做到这一点?
数据帧输入:
r - 使用 ddply() 聚合相对直方图计数
与我问的上一个问题相关(ggplot2 如何获得 2 个直方图,y 值 = 一个计数 / 两个计数的总和),我尝试编写一个函数,该函数将 data.frame 作为响应的输入几个参与者在几个条件下的时间(RT)和准确度(正确),并输出一个“汇总”data.frame,其中的数据像直方图一样聚合。这里的特殊性是我不想获得每个箱中响应的绝对数量,而是相对计数。
我所说的相对计数是对于直方图的每个 bin,该值对应于:
结果实际上接近于密度图,只是它不是每条曲线的总和等于 1,而是正确和不正确曲线的总和。
这是创建示例数据的代码:
首先,我需要定义一个稍后在 ddply 中使用的函数
然后是 main 函数(有 2 个小问题阻止它在函数内部工作,请参见带有 ????? 的行,但在函数外部,此代码有效)。
将其应用于数据的调用
所以首先,我需要你的帮助才能使它作为一个函数工作,并有可能在 dcast() 和 ggplot() 中使用 myfactors 变量。
但更重要的是,我几乎可以肯定这个函数可以用更少的步骤以更优雅、最直接的方式编写。
预先感谢您的帮助!