在R中重塑数据帧

时间:2015-09-03 16:54:12

标签: r transpose

我的数据看起来像这样:

import spray.routing._
import spray.http._
import StatusCodes._
import Directives._

implicit val myRejectionHandler = RejectionHandler {
  case MissingCookieRejection(cookieName) :: _ =>
    complete(BadRequest, "No cookies, no service!!!")
}

class MyService extends HttpServiceActor {
  def receive = runRoute {
    `<my-route-definition>`
  }
}

我想创建一个如下所示的数据集

ID  Updates
101 Open
101 Closed
102 Inactive
102 Open

有人可以帮助我获得在R

中创建的这种表格

1 个答案:

答案 0 :(得分:1)

我们可以使用dcast。通过&#39; ID&#39;创建序列列(&#39; ind&#39;)并使用dcast重塑“长期”#39;广泛的&#39;。

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

编辑:如果我们已经知道每个&#39; ID&#39;

只有两个元素
dcast(df1, ID~paste0('Update', 1:2), value.var='Updates')
#   ID  Update1 Update2
#1 101     Open  Closed
#2 102 Inactive    Open