2017-02-25 56 views
0

我想使用ID列來轉換我的數據框,從而在單個ID下創建新變量。使用R中的重複ID將數據幀行轉換爲列

>Data1 
ID Object ITEM Time Value 
1 a  123  7pm  12.0 
1 b  234  8pm  4.0 
1 c  345  7pm  1.0 
2 a  123  7am  6.0 
2 b  234  8pm  8.1 
2 c  345  12pm 9.7 


ID Object1 ITEM1 Time1 Value1 Object2 ITEM2 Time2 Value2 Object3 ITEM3 Time3 Value3 
1 a  123  7pm  12.0 b  234  8pm  4.0  c  345  7pm  1.0 
2 a  123  7am  6.0  b  234  8pm  8.1  c  345  12pm 9.7 

謝謝。

回答

1

我們可以做到這一點使用dcastdata.table爲什麼downvoted可以採取多種value.var

library(data.table) 
dcast(setDT(Data1), ID~rowid(ID), value.var = names(Data1)[-1]) 
# ID Object_1 Object_2 Object_3 ITEM_1 ITEM_2 ITEM_3 Time_1 Time_2 Time_3 
#1: 1  a  b  c 123 234 345 7pm 8pm 7pm 
#2: 2  a  b  c 123 234 345 7am 8pm 12pm 
# Value_1 Value_2 Value_3 
#1:  12  4.0  1.0 
#2:  6  8.1  9.7 
+0

? – akrun