2016-04-15 50 views
0

我有一个DF如下:如何在R中转置/重塑保持一列的唯一值?

'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 ... 

这是一个例子:

ID  Week  kg 
1 23418 105-111 DIM 55.43655 
2 23499 105-111 DIM 56.11586 
3 24468 105-111 DIM 54.85228 
4 24492 105-111 DIM 47.96415 
5 24574 105-111 DIM 52.80463 
6 24772 105-111 DIM 49.99884 

有附接以及图像。

我有610个不同的ID号码,重复12次(星期)。但并非所有的ID号码都有12周。 我需要一个DF惠特13列:ID,77-83 DIM,84-90 DIM,91-97 DIM ...... 这意味着每周一列,ID一列。 表格的包含必须用Kg值填充。

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

enter image description here

+0

看看:http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example。 请使用'输入(数据)',因为截图几乎不可复制 – Rentrop

回答

3

你也可以做到这一点使用data.table包。

假设:DF是data.frame

首先,你必须要data.frame转换为data.table:

> dt <- setDT(df) 

之后,你可以把这个命令来获取所需的输出:

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

它工作完美!你在3秒内解决了我的三天问题。谢谢!!!!!!!!!!! –