2015-09-03 59 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