2015-09-14 97 views
0

的数据帧我在R中长格式这个数据帧看起来是这样的..重塑中的R

Branch.Name Customer.ID Loan.Type Date  Stage  Time 
      A C001 Home  20/11/05 Processing 10 
      A C001 Home  20/11/05 Approval 30 
      A C001 Home  20/11/05 Finalize 5 
      A C002 Business 23/11/05 Processing 30 

,我想这个转换为宽幅..

Branch.Name Customer.ID Loan.Type Date  Processing Approval Finalize 
A   C001  Home  20/11/05 10  30  5 
B   C002  Business 20/11/05 30  10  0 
B   C003  Business 20/11/05 12  15  0 

我看着改造并融化,但还是搞砸了答案......

在此先感谢

PS:不是所有的行有“公关,“批准”和“敲定”为舞台,有些可能会有额外的阶段

+0

我想你'Branch.Name'输入数据应该有'B”。也许'库(reshape2); dcast(df1,...〜Stage,value.var ='Time',fill = 0)' – akrun

回答

5

这是一个基本的长到宽的转变。

请尝试以下之一:

## Base R 
reshape(mydf, direction = "wide", 
     idvar = c("Branch.Name", "Customer.ID", "Loan.Type", "Date"), 
     timevar = "Stage") 

## reshape2 
library(reshape2) 
dcast(mydf, Branch.Name + Customer.ID + Loan.Type + Date ~ Stage, value.var = "Time") 
## dcast(mydf, ... ~ Stage, value.var = "Time") 

## tidyr 
library(tidyr) 
spread(mydf, Stage, Time) 
+0

感谢他们三人工作.. –