2015-09-03 150 views
-4

我的數據看起來是這樣的:重塑數據幀中的R

ID Updates 
101 Open 
101 Closed 
102 Inactive 
102 Open 

我想創建一個類似下面的數據集,

ID Update1 Update2 
101 Open  Closed 
102 Inactive Open 

有人可以幫助我在得到這種表的創建R

+0

請提供示例數據。什麼是'價值1'和'價值2'? –

回答

1

我們可以使用dcast。用'ID'創建序列列('ind')並使用dcast將'long'重新整形爲'wide'。

library(reshape2) 
df2 <- transform(df1, ind=paste0('Update', ave(seq_along(ID), ID, 
        FUN=seq_along))) 
dcast(df2, ID~ind, value.var='Updates') 
# ID Update1 Update2 
#1 101  Open Closed 
#2 102 Inactive Open 

編輯:如果我們已經知道,會有每個「ID」只有兩個元素

dcast(df1, ID~paste0('Update', 1:2), value.var='Updates') 
# ID Update1 Update2 
#1 101  Open Closed 
#2 102 Inactive Open 
+1

完美的解決方案。爲我工作..謝謝@akrun – user3738411

+0

@ user3738411很高興知道它的工作。請考慮通過點擊投票旁邊的勾號來接受解決方案。 – akrun