问题标签 [dcast]
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 - 将 dcast() 函数应用于数据帧列表
我有一个数据框列表,我在下面展示了其中的一些:
我想对这个列表的元素使用自定义函数 dcast(),这些元素是我的 87 个数据帧。对于每个数据框,所需的结果应如下所示,具体取决于它具有的列数:
我尝试了各种解决方案和代码片段,但没有工作:
它产生错误:
第二种解决方案
错误是:
第三个解决方案
错误是:
第四种解决方案(绝望一)
它再次出现错误:
奇怪的是,如果我输入每个数据框的名称或只是列表的元素,例如 ls.df.val.keep[[3]],它们就起作用了!我还有很多其他的事情我想用 lapply 对这个列表做,但我被困在了第一步!有什么我没有看到的吗?
已编辑。
我正在按照@Jake 的要求添加我的数据框数据示例:
.. .. ..
r - r 编码问题会影响 dcasting 数据表的行为
我有一个数据表,其中有一列是一个字符向量,称为nutcode
. 该列的元素具有不同的编码。有些是unknown
(mac标准);有些是UTF-8
。UTF-8
元素包括μ 。一个例子是“vit_a_rae_µg”。这种编码可能存在,因为原始数据是使用以下代码行从 Access 数据库中读取的(注意编码选择。
当我通过提供列名将我的数据表转换为宽时nutcode
,UTF-8 元素不会转换为列并且没有警告消息。我在 Mac 上使用 data.table v1.9.7(R 版本是 Microsoft Open R ver 3.3.1。
这是具有此行为的代码。
我至少有一个解决方案,我将添加它作为答案。但我也想为 data.table 开发人员标记这一点。
r - R ffdfdply 附加错误
我想将我的数据(data.frame)从长格式转换为宽格式,并将“ITEM”的值作为列和值(“ITEM2”)(见下文):
因此我使用 reshape2 包中的 dcast 函数:
这样做一切正常。
但是在我的数据框中有 7m 条数据记录,我一直在为内存限制而苦苦挣扎。因此,我决定在 ffdf 中转换我的 data.frame 并使用 ffbase 包中的 ffdfdply 函数来投射框架。
为了确保每个拆分都以相同的顺序具有相同的列,我提前从“ITEM”中提取值,如果不存在则附加 N/A 列并按字母顺序对所有列进行排序。
在整个代码下方:
不幸的是,在将第二个拆分的结果附加到第一个拆分时出现以下错误(带有跟踪):
在不附加的情况下只计算一个带有较少记录的拆分可以正常工作。
有人可以帮忙吗?
谢谢你。
r - 将 dcast.data.table 与日期值和聚合一起使用
试图弄清楚这一点。假设你有一个 data.table:
我想把它旋转成这样
我似乎无法为 dcast.data.table 找到正确的语法。我试过
引发错误:
聚合函数应采用向量输入并返回单个值(长度=1)。
我也试过:
但结果抛弃了我的约会
任何建议,将不胜感激。TIA
r - dcast 和汇总到一个函数中 - 参数丢失
我正在尝试将以下正常工作的代码转换为函数。
例如,如果我们采用以下数据集:
该代码将根据目标变量聚合数据集,如下所示:
这就是我构造函数的方式:
但我得到 - 错误:未知变量分组:列。我知道这是一个基本问题,但是任何线索为什么我在 group_by 中失去了论点?
我曾尝试使用以下实施“group_by_”以及“require(“dplyr”)”,但它们似乎无关。
r - 以长格式聚合数据时,正确的计算方式意味着
对于一个简单的数据框:
我正在尝试按段聚合并计算段均值。
我期待以下结果:
由于计算平均值应考虑重复的 client_ids,我们应该将每个段的单个事务计数相加(低段为 1+2+2+2+3+17)并除以唯一的 client_ids(低段为 3),得到 27 /3 = 9 用于低段。为每个 client_id 使用预先计算的总和:(5+2+20)/3 = 9
但是,当我尝试对这些数据运行“dcast”或“聚合”时,我得到了错误的数字,因为显然他们将每一行视为一个独特的观察:
给
这有效地说明了它将每个段的事务计数相加(低段为 1+2+2+2+3+17)并除以每个段的观察数(低段为 6)而不是唯一的 client_ids。
在这种情况下,计算均值的正确方法是什么?
r - R ddply dcast 替代方案?
我想将我的数据(data.frame)从长格式转换为宽格式,并将“ITEM”的值作为列和值(“ITEM2”)(见下文):
长格式:
宽格式:
因此我使用 reshape2 包中的 dcast 函数:
这样做一切正常。但是在我的数据框中有 7m 条数据记录,我一直在为内存限制而苦苦挣扎。因此我决定使用 plyr 包中的 ddply。
为了确保每个拆分都以相同的顺序具有相同的列,我提前从“ITEM”中提取值,如果不存在则附加 N/A 列并按字母顺序对所有列进行排序。
在整个代码下方:
执行时ddply
,使用的 RAM 在运行时不断增加,直到达到最大值 (12 GB)。因此性能非常缓慢,几个小时后我终止了 R。
有没有另一种方法来投射整个数据集?
提前致谢。
r - R中data.frame中每一列的第N个最小值
我想为 data.frame 中的每一列找到第 n 个最小的数字。
在下面的示例中,我使用 dcast nth 函数实际上指定了第二个最小值。有人可以帮助编写函数吗?
实际的答案是这样的..
r - R dcast:如何执行 dcast 值计算?
我有一个大数据框,我用它运行这个:
这是结果:
另外,这个:
使这个:
实际上,我想这样做:
并获得这些值:
我尝试将操纵fun.aggregate
作为论据,但我不确定这是正确的路径,或者我不知道我在做什么。有人可以帮我解决这个问题吗?(旁注:这个样本有两个类别。真实数据有 > 40。)
r - 将唯一值转换为新列并检查所有其他值
感谢@hrbrmstr,我为“ Scraping a xml document (nested url-structure) ”问题找到了一个非常好的解决方案。
但由于这种洞察力,它出现了另一个问题:
现在我得到了以下数据结构......
唯一实际变化的变量是“Auss_ord”,其中包含不同的议员佣金作为价值。
现在,我想要实现的是从当前的长版本切换到数据框的宽版本。
对于“Auss_ord”中的每个唯一值(某些文本字符串),都应该有一个新列,并且如果另一个对象具有相同的值,还应该检查它是否为“真”。
以便...
……应该变成……
我尝试过重塑操作,例如
或者
...但是我没有得到任何正确的结果,除了(对我来说)检查值的唯一性的非常棘手的实现