如何在R中转置/重塑保持一列的唯一值?

时间:2016-04-15 13:10:35

标签: r reshape transpose

我有一个DF如下:

public void removeDeathObjects() {
    Wand tempW;
    Gegner tempG;
    for (Iterator<Gegner> it = gegner.iterator(); it.hasNext();) {
        tempG = it.next();
        if (tempG.isDeath()){
            it.remove();
        }
    }
    for (Iterator<Wand> it2 = waende.iterator(); it2.hasNext();) {
        tempW = it2.next();
        if(tempW.isDestroyed()){
            it2.remove();
        }
    }   
}

这是一个例子:

'data.frame':   6082 obs. of  3 variables:
 $ ID  : int  23418 23499 24468 24492 24574 24772 25020 25070 25299 25564 ...
 $ Week: Factor w/ 12 levels "77-83 DIM","84-90 DIM","91-97 DIM",....
 $ kg  : num  55.4 56.1 54.9 48 52.8 ...

也附有图片。

我有610个不同的身份证号码,最多可重复12次(周)。但并非所有身份证号码都有12周的时间。 我需要一个DF whit 13列:ID,77-83 DIM,84-90 DIM,91-97 DIM ...... 这意味着每周一列,ID为一列。 必须用Kg值填充表的包含。

如果我不够清楚,我很抱歉。 有人可以帮帮我吗? 感谢

enter image description here

1 个答案:

答案 0 :(得分:3)

您也可以使用data.table包来执行此操作。

假设:df是data.frame

首先,您必须将data.frame转换为data.table:

> dt <- setDT(df)

之后,您可以应用此命令来获得所需的输出:

> dcast(dt,ID~Week,value.var='kg')