我有一个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)
我会提供可重复性的数据集,但由于此问题与对象大小有关,我不认为它的一个子集会有所帮助,而且我不确定如何轻松发布完整数据集。如果您知道如何发布完整数据集或认为某个子集会有所帮助,请告诉我。
由于
答案 0 :(得分:0)
好的,我弄清楚出了什么问题。它试图使用Vals列中的每个唯一值作为一个单独的行产生比我想要的132更多的行,所以我需要添加一个新的列,它基本上是一个从1:132开始的值索引,所以数据帧有3列:ID,Vals,ValsNumber
dcast代码如下所示:
df_wide = dcast(df, value.var = "Vals", ValsNumber ~ Sample_ID)