dcast对象比原始对象

时间:2017-08-02 17:12:27

标签: r memory reshape2 dcast

我有一个data.frame,包含两列,一个Sample_ID变量和一个值变量。每个样本(其中有1971个)有132个单独的点。整个对象只有~3000000字节,或大约0.003千兆字节(根据object.size())。出于某种原因,当我尝试将对象转换为宽格式时,它会抛出一个错误,说它不能分配大小为3.3 GB的向量,这比原始对象大3个数量级。

我想要的输出是每个样本1列,每列有132行数据。

我使用的dcast代码如下:

df_dcast = dcast(df, value.var = "Vals", Vals~Sample_ID)

我会提供可重复性的数据集,但由于此问题与对象大小有关,我不认为它的一个子集会有所帮助,而且我不确定如何轻松发布完整数据集。如果您知道如何发布完整数据集或认为某个子集会有所帮助,请告诉我。

由于

1 个答案:

答案 0 :(得分:0)

好的,我弄清楚出了什么问题。它试图使用Vals列中的每个唯一值作为一个单独的行产生比我想要的132更多的行,所以我需要添加一个新的列,它基本上是一个从1:132开始的值索引,所以数据帧有3列:ID,Vals,ValsNumber

dcast代码如下所示:

df_wide = dcast(df, value.var = "Vals", ValsNumber ~ Sample_ID)