0

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

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

我正在使用的 dcast 代码如下:

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

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

谢谢

4

1 回答 1

0

好的,我知道出了什么问题。它试图将 Vals 列中的每个唯一值用作单独的行,从而产生比我想要的 132 多得多的行,因此我需要添加一个新列,该列基本上是从 1:132 开始的值索引,因此数据框有 3 列:ID、Vals、ValsNumber

dcast 代码如下所示:

df_wide = dcast(df, value.var = "Vals", ValsNumber ~ Sample_ID)
于 2017-08-02T18:02:35.937 回答